---
openapi: 3.0.0
info:
  title: DIP - Send Messages & Receive Publications
  description: DIP APIs for sending & recieving MHHS TOM messages and reports. <br>Supported interfaces -<br><br> -           Channel-001    Notification of Change of Supplier<br> -           Channel-002    Registration Update to Supplier (COS Gain)<br> -           Channel-003    Notification of Migration and De-Appointment (Migration)<br> -           Channel-004    Comms Hub Information <br> -           Channel-005    Metering Service MTD Updates to Registration<br> -           Channel-006    Registration Service Notification of MTD Updates<br> -           Channel-007    Change of Energisation Status Outcome<br> -           Channel-008    Registration Service Notification of Change of Energisation Status<br> -           Channel-009    Registration Service Notification of Disconnection<br> -           Channel-013    MDS Defaults Applied <br> -           Channel-014    Rejected Consumption Data Submission<br> -           Channel-015    Request Historic Consumption Replay (ADV Sites only)<br> -           Channel-016    HH Consumption History Replay  (ADV Sites only)<br> -           Channel-018    Notification of Registration Data Item Changes<br> -           Channel-019    Maintain MPAN Relationships<br> -           Channel-020    Maintain MPAN Relationship Response<br> -           Channel-021    UTC Settlement Period Consumption Data<br> -           Channel-022    LSS Period Data<br> -           Channel-023    LSS Totals Data<br> -           Channel-024    Supplier Advisory Notification to DS<br> -           Channel-025    Supplier Updates to Registration<br> -           Channel-026    Registration Service Notification of Supplier Data Chg<br> -           Channel-027    Consumption Amendment Request<br> -           Channel-028    Consumption Amendment Request Response<br> -           Channel-030    Correlated MPAN Activity<br> -           Channel-031    Supplier Service Provider Appointment Request<br> -           Channel-032    Supplier Service Provider Appointment Request Response<br> -           Channel-033    Registration Service Request for Service Appointment<br> -           Channel-034    Service Provider Appointment Request Response<br> -           Channel-035    Registration Service Appointment Status Notification<br> -           Channel-036    Registration Service Notification of Service Appointment & Supporting Info<br> -           Channel-037    Registration Service Notification of Service De-Appointment<br> -           Channel-038    Customer Direct Contract Advisory<br> -           Channel-039    Customer Direct Contract Advisory Response<br> -           Channel-040    Notification of ECS Annual Consumption<br> -           Channel-041    Cumulative Meter Reading<br> -           Channel-042    Customer Name Information<br> -           Channel-043    Registration Service Notification of Change of Connection Type<br> -           Channel-044    Registration Service Notification of Change of Segment<br> -           Channel-045    Registration Service Notification of Invalid Segment or No Agents Appointed<br> -           Channel-047    Notification of the Publication of a Downloadable Asset<br> -           Channel-050    EES Exclusive Updates<br><br> ECS Reports<br><br> -           REP-002   LDSO report for DUoS – aggregated data<br> -           REP-002A  Embedded Network report for DUoS – aggregated data<br> -           REP-003   BM Unit Allocated Demand Volumes to Market Participants<br> -           REP-004   Supplier Deemed Take Report<br> -           REP-006   Aggregated Uncorrected volumes by CCC to Market Participants<br> -           REP-007   VAS Exception Report to Suppliers and BSCCo<br> -           REP-008   MDS Exception Report to LDSOs<br> -           REP-009   EMRS Report for Suppliers<br>
  version: "1.3"
servers:
- url: https://virtserver.swaggerhub.com/MHHSPROGRAMME/submitMessages/1.1
  description: SwaggerHub API Mock Server
security:
- ApiKeyAuth: []
paths:
  /dip-channel/{id}:
    summary: DIP Interface Channels
    description: Represents a single DIP messaging channel. Each interface/publication is identified by a 'id'
    post:
      tags:
      - DIP Message Channel
      summary: Submit a series of Interface messages
      description: Allows a Market Participant to submit a series of messages on a DIP interface
      operationId: sendMessage
      parameters:
      - name: id
        in: path
        required: true
        style: simple
        explode: false
        schema:
          $ref: '#/components/schemas/DT-000-InterfaceID'
      - name: X-DIP-Signature
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Signature-Date
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Content-Hash
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Signature-Certificate
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DIPMessageArray'
        required: true
      responses:
        "201":
          description: Messages created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardResponse'
        "207":
          description: Some messages created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardResponse'
        "400":
          description: Bad Request
        "401":
          description: Unauthorised Error
        "403":
          description: Forbidden
        "404":
          description: Not found
        "405":
          description: Method Not Allowed
        "406":
          description: Not Acceptable
        "408":
          description: Request Timeout
        "413":
          description: Payload Too Large
        "429":
          description: Too Many Requests
        "500":
          description: Internal Server Error
        "502":
          description: Bad Gateway
        "503":
          description: Service Unavailable
        "504":
          description: Gateway Timeout
        "505":
          description: HTTP Version Not Supported
  /dip-channel/{id}/pubconfig:
    post:
      tags:
      - DIP Channel Publication Configuration
      summary: Configure DIP Channel Publication
      description: Allows a Market Participant to configure the output channel
      operationId: configurePublication
      parameters:
      - name: id
        in: path
        required: true
        style: simple
        explode: false
        schema:
          $ref: '#/components/schemas/DT-000-InterfaceID'
      - name: X-DIP-Signature
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Signature-Date
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Content-Hash
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Signature-Certificate
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookConfig'
        required: true
      responses:
        "201":
          description: Publication configured
        "400":
          description: Bad Request
        "401":
          description: Unauthorised Error
        "403":
          description: Forbidden
      callbacks:
        outEvent:
          '{$request.body#/config.callbackURL}':
            post:
              requestBody:
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/DIPMessageArray'
                required: true
              responses:
                "200":
                  description: OK
                  content:
                    application/json:
                      schema:
                        $ref: '#/components/schemas/StandardResponse'
                "207":
                  description: Some messages accpeted
                  content:
                    application/json:
                      schema:
                        $ref: '#/components/schemas/StandardResponse'
    delete:
      tags:
      - DIP Channel Publication Configuration
      summary: Delete existing Publication configuration
      description: Delete an exisiting webhook for PUB-001 publication
      parameters:
      - name: id
        in: path
        required: true
        style: simple
        explode: false
        schema:
          $ref: '#/components/schemas/DT-000-InterfaceID'
      - name: X-DIP-Signature
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Signature-Date
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Content-Hash
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Signature-Certificate
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      responses:
        "204":
          description: Publication config deleted
        "401":
          description: Unauthorised Error
  /dip-channel/{id}/replay:
    post:
      tags:
      - DIP Channel Replay/Requeue
      summary: Replay messages from a DIP Channel Publication
      description: Allows a Market Participant to replay messages
      operationId: replayPublication
      parameters:
      - name: id
        in: path
        required: true
        style: simple
        explode: false
        schema:
          $ref: '#/components/schemas/DT-000-InterfaceID'
      - name: X-DIP-Signature
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Signature-Date
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Content-Hash
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Signature-Certificate
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MessageRequest'
        required: true
      responses:
        "200":
          description: Replayed Messages
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DIPMessageArray'
        "400":
          description: Bad Request
        "401":
          description: Unauthorised Error
        "403":
          description: Forbidden
  /dip-channel/{id}/requeue:
    post:
      tags:
      - DIP Channel Replay/Requeue
      summary: Requeue messages on DIP Channel webhook
      description: Allows a Market Participant to replay messages
      operationId: requeuePublication
      parameters:
      - name: id
        in: path
        required: true
        style: simple
        explode: false
        schema:
          $ref: '#/components/schemas/DT-000-InterfaceID'
      - name: X-DIP-Signature
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Signature-Date
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Content-Hash
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Signature-Certificate
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MessageRequest'
        required: true
      responses:
        "200":
          description: Messages requeued
        "400":
          description: Bad Request
        "401":
          description: Unauthorised Error
        "403":
          description: Forbidden
  /statusmessage:
    post:
      tags:
      - Status Messages
      summary: Submit a series of status messages
      description: Allows a Market Participant to submit a series of status messages
      operationId: submitStatusMessage
      parameters:
      - name: X-DIP-Signature
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Signature-Date
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Content-Hash
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Signature-Certificate
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StandardResponseArray'
        required: true
      responses:
        "201":
          description: Created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandardResponse'
        "400":
          description: Bad Request
        "401":
          description: Unauthorised Error
        "403":
          description: Forbidden
        "404":
          description: Not found
        "405":
          description: Method Not Allowed
        "406":
          description: Not Acceptable
        "408":
          description: Request Timeout
        "413":
          description: Payload Too Large
        "429":
          description: Too Many Requests
        "500":
          description: Internal Server Error
        "502":
          description: Bad Gateway
        "503":
          description: Service Unavailable
        "504":
          description: Gateway Timeout
        "505":
          description: HTTP Version Not Supported
  /statusmessage/config:
    post:
      tags:
      - Status Messages
      summary: Webhook to pull a series of status messages
      description: Allows a Market Participant to get a series of status messages
      operationId: postStatusMsgWebhook
      parameters:
      - name: X-DIP-Signature
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Signature-Date
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Content-Hash
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Signature-Certificate
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WebhookConfig'
        required: true
      responses:
        "201":
          description: Webhook created
        "401":
          description: Unauthorised Error
      callbacks:
        outEvent:
          '{$request.body#/callbackURL}':
            post:
              requestBody:
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/StandardResponseArray'
                required: true
              responses:
                "200":
                  description: OK
    delete:
      tags:
      - Status Messages
      summary: Delete existing Status Message configuration
      description: Delete an exisiting webhook for Status Messages
      parameters:
      - name: X-DIP-Signature
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Signature-Date
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Content-Hash
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      - name: X-DIP-Signature-Certificate
        in: header
        required: true
        style: simple
        explode: false
        schema:
          type: string
      responses:
        "204":
          description: Publication config deleted
        "401":
          description: Unauthorised Error
components:
  schemas:
    DIPMessageArray:
      minItems: 1
      type: array
      description: Array of DIP messages
      items:
        $ref: '#/components/schemas/DIPMessage'
    DIPMessage:
      type: object
      properties:
        payload:
          oneOf:
          - $ref: '#/components/schemas/IF-001-Payload'
          - $ref: '#/components/schemas/IF-002-Payload'
          - $ref: '#/components/schemas/IF-003-Payload'
          - $ref: '#/components/schemas/IF-004-Payload'
          - $ref: '#/components/schemas/IF-005-Payload'
          - $ref: '#/components/schemas/IF-006-Payload'
          - $ref: '#/components/schemas/IF-007-Payload'
          - $ref: '#/components/schemas/IF-008-Payload'
          - $ref: '#/components/schemas/IF-009-Payload'
          - $ref: '#/components/schemas/IF-013-Payload'
          - $ref: '#/components/schemas/IF-014-Payload'
          - $ref: '#/components/schemas/IF-015-Payload'
          - $ref: '#/components/schemas/IF-016-Payload'
          - $ref: '#/components/schemas/IF-018-Payload'
          - $ref: '#/components/schemas/IF-019-Payload'
          - $ref: '#/components/schemas/IF-020-Payload'
          - $ref: '#/components/schemas/IF-021-Payload'
          - $ref: '#/components/schemas/IF-022-Payload'
          - $ref: '#/components/schemas/IF-023-Payload'
          - $ref: '#/components/schemas/IF-024-Payload'
          - $ref: '#/components/schemas/IF-025-Payload'
          - $ref: '#/components/schemas/IF-026-Payload'
          - $ref: '#/components/schemas/IF-027-Payload'
          - $ref: '#/components/schemas/IF-028-Payload'
          - $ref: '#/components/schemas/IF-031-Payload'
          - $ref: '#/components/schemas/IF-032-Payload'
          - $ref: '#/components/schemas/IF-033-Payload'
          - $ref: '#/components/schemas/IF-034-Payload'
          - $ref: '#/components/schemas/IF-035-Payload'
          - $ref: '#/components/schemas/IF-036-Payload'
          - $ref: '#/components/schemas/IF-037-Payload'
          - $ref: '#/components/schemas/IF-038-Payload'
          - $ref: '#/components/schemas/IF-039-Payload'
          - $ref: '#/components/schemas/IF-040-Payload'
          - $ref: '#/components/schemas/IF-041-Payload'
          - $ref: '#/components/schemas/IF-043-Payload'
          - $ref: '#/components/schemas/IF-044-Payload'
          - $ref: '#/components/schemas/IF-045-Payload'
          - $ref: '#/components/schemas/IF-047-Payload'
          - $ref: '#/components/schemas/IF-050-Payload'
          - $ref: '#/components/schemas/REP-002-Payload'
          - $ref: '#/components/schemas/REP-002A-Payload'
          - $ref: '#/components/schemas/REP-003-Payload'
          - $ref: '#/components/schemas/REP-004-Payload'
          - $ref: '#/components/schemas/REP-006-Payload'
          - $ref: '#/components/schemas/REP-007-Payload'
          - $ref: '#/components/schemas/REP-008-Payload'
          - $ref: '#/components/schemas/REP-009-Payload'
      description: DIP message - multiple payloads mapped into single object
    WebhookConfig:
      required:
      - recipientID
      - recipientRoleID
      type: object
      properties:
        callbackURL:
          type: string
          format: uri
          example: https://bigEnergyServer.com/receiveEvents
        recipientID:
          $ref: '#/components/schemas/DT-006-DIPParticipantID'
        recipientRoleID:
          $ref: '#/components/schemas/DT-009-DIPParticipantRole'
        maxMessageCount:
          type: number
          description: optional - will default  - lower lmit
          example: 100
        maxPayloadSize:
          type: number
          description: maximum payload size in Kb
          example: 100000
    MessageRequest:
      type: object
      properties:
        datetimeFrom:
          $ref: '#/components/schemas/DT-003-DateTime'
        datetimeTo:
          $ref: '#/components/schemas/DT-003N-DateTime'
        eventCode:
          $ref: '#/components/schemas/DT-004N-EventCode'
        MPAN:
          $ref: '#/components/schemas/DT-002N-MPAN'
        transactionIDs:
          maxItems: 100
          minItems: 1
          type: array
          items:
            $ref: '#/components/schemas/DT-014-DIPTransactionID'
        recipientID:
          $ref: '#/components/schemas/DT-006-DIPParticipantID'
        recipientRoleID:
          $ref: '#/components/schemas/DT-009-DIPParticipantRole'
    StandardResponse:
      type: object
      properties:
        messageArray:
          $ref: '#/components/schemas/StandardResponseArray'
        timestamp:
          $ref: '#/components/schemas/DT-003-DateTime'
    StandardResponseArray:
      minItems: 1
      type: array
      description: Submit Event API Response type
      items:
        $ref: '#/components/schemas/StandardResponseBodyType'
    StandardResponseBodyType:
      required:
      - message
      - recipientID
      - senderID
      - sentTimestamp
      - statusCode
      - transactionID
      type: object
      properties:
        transactionID:
          $ref: '#/components/schemas/DT-014-DIPTransactionID'
        senderUniqueReference:
          $ref: '#/components/schemas/DT-995-SenderUniqueReference'
        correlationID:
          $ref: '#/components/schemas/DT-011-CorrelationID'
        sentTimestamp:
          $ref: '#/components/schemas/DT-003-DateTime'
        senderID:
          $ref: '#/components/schemas/DT-006-DIPParticipantID'
        recipientID:
          $ref: '#/components/schemas/DT-006-DIPParticipantID'
        DIPConnectionProviderID:
          $ref: '#/components/schemas/DT-006-DIPParticipantID'
        message:
          $ref: '#/components/schemas/DT-005N-StatusErrorMessage'
        help:
          $ref: '#/components/schemas/DT-019-HelpText'
        serviceTicketURL:
          $ref: '#/components/schemas/DT-018-URL'
    DT-000-InterfaceID:
      maxLength: 8
      minLength: 6
      type: string
      description: Interface ID
      example: IF-007
      enum:
      - IF-001
      - IF-002
      - IF-005
      - IF-006
      - IF-007
      - IF-008
      - IF-009
      - IF-013
      - IF-014
      - IF-015
      - IF-016
      - IF-018
      - IF-021
      - IF-022
      - IF-023
      - IF-024
      - IF-025
      - IF-026
      - IF-027
      - IF-028
      - IF-031
      - IF-032
      - IF-033
      - IF-034
      - IF-035
      - IF-036
      - IF-037
      - IF-038
      - IF-039
      - IF-041
      - IF-043
      - IF-044
      - IF-045
      - IF-047
      - REP-002
      - REP-002A
      - REP-003
      - REP-004
      - REP-006
      - REP-007
      - REP-008
      - REP-009
    IF-001-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-001-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-001-CustomBlock'
      description: IF001 Message
    IF-001-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF001CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-001
    S1:
      required:
      - environmentTag
      - senderDIPID
      - senderRoleID
      - senderTimestamp
      - senderUniqueReference
      - subText
      type: object
      properties:
        environmentTag:
          $ref: '#/components/schemas/DI-991-Environment-Tag'
        subText:
          $ref: '#/components/schemas/DI-977-SubText'
        senderUniqueReference:
          $ref: '#/components/schemas/DI-995-Sender-Unique-Reference'
        senderTimestamp:
          $ref: '#/components/schemas/DI-998-Sender-Timestamp'
        senderDIPID:
          $ref: '#/components/schemas/DI-997-Participant-Sender-DIPID'
        senderRoleID:
          $ref: '#/components/schemas/DI-984-Sender-Role-ID'
        senderCorrelationID:
          $ref: '#/components/schemas/DI-985-Sender-Correlation-ID'
        DIPConnectionProviderID:
          $ref: '#/components/schemas/DI-996-DIP-Connection-Provider-DIPID'
      description: Sender Common block
    DI-991-Environment-Tag:
      maxLength: 10
      minLength: 3
      type: string
      description: Environment Tag
      example: DEV
      enum:
      - PROD
      - PREPROD
      - SIT
      - UIT
      - DEV
    DI-977-SubText:
      maxLength: 500
      minLength: 1
      type: string
      description: SubText
      nullable: true
      example: additonal text to separate messages in testing - ignore in production
    DI-995-Sender-Unique-Reference:
      maxLength: 200
      minLength: 1
      type: string
      description: Sender Unique Reference
      example: S-005-0123456789-SUP-20222313-12345687a1234567a
    DI-998-Sender-Timestamp:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-997-Participant-Sender-DIPID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    DI-984-Sender-Role-ID:
      maxLength: 5
      minLength: 3
      type: string
      description: DIP Participant Role
      example: SUP
    DI-985-Sender-Correlation-ID:
      maxLength: 60
      type: string
      description: Correlation Id
      nullable: true
      example: CI-20220401-1234567890123abce123092
    DI-996-DIP-Connection-Provider-DIPID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      nullable: true
      example: "1009012345"
    A0:
      required:
      - always
      - primaryRecipients
      - secondaryRecipients
      type: object
      properties:
        primaryRecipients:
          type: array
          description: Primary Recipient - array of Ids; set by Sender
          items:
            $ref: '#/components/schemas/DT-006N-DIPParticipantID'
        secondaryRecipients:
          type: array
          description: Secondary Recipient - array of Ids; set by DIP
          items:
            $ref: '#/components/schemas/DT-006N-DIPParticipantID'
        always:
          type: array
          description: Always Recipient - array of Ids; set by DIP
          items:
            anyOf:
            - $ref: '#/components/schemas/DT-009N-DIPParticipantRole'
            - $ref: '#/components/schemas/DT-006N-DIPParticipantID'
      description: Addressing block
    DT-006N-DIPParticipantID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      nullable: true
      example: "1009012345"
    DT-009N-DIPParticipantRole:
      maxLength: 5
      minLength: 3
      type: string
      description: DIP Participant Role
      nullable: true
      example: SUP
    D0:
      required:
      - initialCorrelationID
      - publicationID
      - replayIndicator
      - serviceTicketURL
      - transactionID
      - transactionTimestamp
      type: object
      properties:
        transactionID:
          $ref: '#/components/schemas/DT-014-DIPTransactionID'
        transactionTimestamp:
          $ref: '#/components/schemas/DT-003-DateTime'
        publicationID:
          $ref: '#/components/schemas/DT-983-PublicationID'
        initialCorrelationID:
          $ref: '#/components/schemas/DT-011N-CorrelationID'
        replayIndicator:
          $ref: '#/components/schemas/DI-988-Replay-Indicator'
        serviceTicketURL:
          $ref: '#/components/schemas/DI-978-Service-Ticket-URL'
      description: DIP Block
    DT-014-DIPTransactionID:
      maxLength: 60
      type: string
      description: Transaction ID
      example: T-006-0123456789-SUP-20220401-1234CC0123456789
    DT-003-DateTime:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DT-983-PublicationID:
      maxLength: 8
      minLength: 6
      type: string
      description: Publication ID
      example: PUB-007
      enum:
      - PUB-001
      - PUB-002
      - PUB-005
      - PUB-006
      - PUB-007
      - PUB-008
      - PUB-009
      - PUB-013
      - PUB-014
      - PUB-015
      - PUB-016
      - PUB-018
      - PUB-021
      - PUB-022
      - PUB-023
      - PUB-024
      - PUB-025
      - PUB-026
      - PUB-027
      - PUB-028
      - PUB-031
      - PUB-032
      - PUB-033
      - PUB-034
      - PUB-035
      - PUB-036
      - PUB-037
      - PUB-038
      - PUB-039
      - PUB-041
      - PUB-043
      - PUB-044
      - PUB-045
      - PUB-047
      - REP-002
      - REP-002A
      - REP-003
      - REP-004
      - REP-006
      - REP-007
      - REP-008
      - REP-009
    DT-011N-CorrelationID:
      maxLength: 60
      type: string
      description: Correlation Id
      nullable: true
      example: CI-20220401-1234567890123abce123092
    DI-988-Replay-Indicator:
      type: boolean
      description: Set by the DIP to denote that a txn is being replayed
    DI-978-Service-Ticket-URL:
      maxLength: 250
      minLength: 1
      type: string
      description: URL
      nullable: true
      example: https://<baseURL>/nav_to.do?uri=<table name>.do?sys_id=-1%26sysparm_query=<field=value>
    M0:
      required:
      - GSPGroupID
      - MPANCore
      - distributorDIPID
      type: object
      properties:
        MPANCore:
          $ref: '#/components/schemas/DI-063-MPAN-Core'
        distributorDIPID:
          $ref: '#/components/schemas/DI-108-Distributor-DIP-ID'
        GSPGroupID:
          $ref: '#/components/schemas/DI-037-GSP-Group-ID'
      description: MPAN Core
    DI-063-MPAN-Core:
      maxLength: 13
      minLength: 13
      type: string
      description: MPAN Core
      example: "2000056535971"
    DI-108-Distributor-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    DI-037-GSP-Group-ID:
      maxLength: 2
      minLength: 2
      type: string
      description: Identifies the distinct grid supply point group (physical region of the country) where the metering point is located.
      example: _K
      enum:
      - _A
      - _B
      - _C
      - _D
      - _E
      - _F
      - _G
      - _H
      - _J
      - _K
      - _L
      - _M
      - _N
      - _P
    IF-001-CustomBlock:
      required:
      - B013
      type: object
      properties:
        B013:
          $ref: '#/components/schemas/B013'
        B002:
          $ref: '#/components/schemas/B002'
        B003:
          $ref: '#/components/schemas/B003'
        B004:
          $ref: '#/components/schemas/B004'
        B005:
          $ref: '#/components/schemas/B005'
        B006:
          $ref: '#/components/schemas/B006'
        B022:
          $ref: '#/components/schemas/B022'
        B023:
          $ref: '#/components/schemas/B023'
        B024:
          $ref: '#/components/schemas/B024'
        B025:
          $ref: '#/components/schemas/B025'
        B026:
          $ref: '#/components/schemas/B026'
        B027:
          $ref: '#/components/schemas/B027'
        B029:
          $ref: '#/components/schemas/B029'
        B030:
          $ref: '#/components/schemas/B030'
        B031:
          $ref: '#/components/schemas/B031'
        B032:
          $ref: '#/components/schemas/B032'
        B035List:
          type: array
          items:
            $ref: '#/components/schemas/B035'
        B037List:
          type: array
          items:
            $ref: '#/components/schemas/B037'
      description: IF001 Custom data block
    B013:
      required:
      - CSSRegistrationRequestID
      type: object
      properties:
        CSSRegistrationRequestID:
          $ref: '#/components/schemas/DI-849-CSS-Registration-Request-ID'
      description: CSS Registration Request Id
    DI-849-CSS-Registration-Request-ID:
      maxLength: 36
      type: string
      description: CSS Registration Request ID
    B002:
      required:
      - incomingSupplierDIPID
      - incomingSupplierEffectiveFromDate
      - incomingSupplierMPID
      type: object
      properties:
        incomingSupplierDIPID:
          $ref: '#/components/schemas/DI-803-Incoming-Supplier-DIP-ID'
        incomingSupplierMPID:
          $ref: '#/components/schemas/DI-200-Incoming-Supplier-MPID'
        incomingSupplierEffectiveFromDate:
          $ref: '#/components/schemas/DI-086-Supplier-Effective-From-Date'
      description: Incoming Supplier Information
    DI-803-Incoming-Supplier-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    DI-200-Incoming-Supplier-MPID:
      maximum: 4
      minimum: 4
      type: string
      description: Legacy MPID
      example: EMEB
    DI-086-Supplier-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    B003:
      required:
      - outgoingSupplierDIPID
      - outgoingSupplierEffectiveToDate
      - outgoingSupplierMPID
      type: object
      properties:
        outgoingSupplierDIPID:
          $ref: '#/components/schemas/DI-805-Outgoing-Supplier-DIP-ID'
        outgoingSupplierMPID:
          $ref: '#/components/schemas/DI-201-Outgoing-Supplier-MPID'
        outgoingSupplierEffectiveToDate:
          $ref: '#/components/schemas/DI-121-Supplier-Effective-To-Date'
      description: Outgoing Supplier Information
    DI-805-Outgoing-Supplier-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    DI-201-Outgoing-Supplier-MPID:
      maximum: 4
      minimum: 4
      type: string
      description: Legacy MPID
      example: EMEB
    DI-121-Supplier-Effective-To-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    B004:
      required:
      - domesticPremiseIndicator
      - domesticPremiseIndicatorEffectiveFromDate
      type: object
      properties:
        domesticPremiseIndicator:
          $ref: '#/components/schemas/DI-030-Domestic-Premise-Indicator'
        domesticPremiseIndicatorEffectiveFromDate:
          $ref: '#/components/schemas/DI-032-Domestic-Premise-Indicator-Effective-From-Date'
      description: MPAN CSS Dom Indicator
    DI-030-Domestic-Premise-Indicator:
      type: boolean
      description: A flag that indicates if the MPAN of the registration appointment is used to identify a domestic premise.
      example: true
    DI-032-Domestic-Premise-Indicator-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    B005:
      required:
      - currentDataServiceDIPID
      - currentDataServiceMPID
      - currentMeteringServiceDIPID
      - currentMeteringServiceMPID
      type: object
      properties:
        currentMeteringServiceDIPID:
          $ref: '#/components/schemas/DI-809-Current-Metering-Service-DIP-ID'
        currentMeteringServiceMPID:
          $ref: '#/components/schemas/DI-207-Current-Metering-Service-MPID'
        currentDataServiceDIPID:
          $ref: '#/components/schemas/DI-811-Current-Data-Service-DIP-ID'
        currentDataServiceMPID:
          $ref: '#/components/schemas/DI-208-Current-Data-Service-MPID'
      description: Incumbent/Outgoing Service Providers
    DI-809-Current-Metering-Service-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      nullable: true
      example: "1009012345"
    DI-207-Current-Metering-Service-MPID:
      maximum: 4
      minimum: 4
      type: string
      description: Legacy MPID
      nullable: true
      example: EMEB
    DI-811-Current-Data-Service-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      nullable: true
      example: "1009012345"
    DI-208-Current-Data-Service-MPID:
      maximum: 4
      minimum: 4
      type: string
      description: Legacy MPID
      nullable: true
      example: EMEB
    B006:
      required:
      - customerDirectContractDataService
      - customerDirectContractDataServiceDIPID
      - customerDirectContractMeteringService
      - customerDirectContractMeteringServiceDIPID
      type: object
      properties:
        customerDirectContractMeteringService:
          $ref: '#/components/schemas/DI-021-Customer-Direct-Contract-Metering-Service'
        customerDirectContractMeteringServiceDIPID:
          $ref: '#/components/schemas/DI-140-Customer-Direct-Contract-Metering-Service-DIP-ID'
        customerDirectContractDataService:
          $ref: '#/components/schemas/DI-022-Customer-Direct-Contract-Data-Service'
        customerDirectContractDataServiceDIPID:
          $ref: '#/components/schemas/DI-138-Customer-Direct-Contract-Data-Service-DIP-ID'
      description: CDC Info
    DI-021-Customer-Direct-Contract-Metering-Service:
      type: boolean
      description: An indicator to show if a direct customer contract exists between the customer at the metering service provider.
      example: true
    DI-140-Customer-Direct-Contract-Metering-Service-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    DI-022-Customer-Direct-Contract-Data-Service:
      type: boolean
      description: An indicator to show if a direct customer contract exists between the customer at the data service provider.
      example: true
    DI-138-Customer-Direct-Contract-Data-Service-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    B022:
      required:
      - addressLine1
      - addressLine2
      - addressLine3
      - addressLine4
      - addressLine5
      - addressLine6
      - addressLine7
      - addressLine8
      - addressLine9
      - meteringPointPostcode
      type: object
      properties:
        meteringPointPostcode:
          $ref: '#/components/schemas/DI-010-Metering-Point-Postcode'
        addressLine1:
          $ref: '#/components/schemas/DI-001-Address-Line-1'
        addressLine2:
          $ref: '#/components/schemas/DI-002-Address-Line-2'
        addressLine3:
          $ref: '#/components/schemas/DI-003-Address-Line-3'
        addressLine4:
          $ref: '#/components/schemas/DI-004-Address-Line-4'
        addressLine5:
          $ref: '#/components/schemas/DI-005-Address-Line-5'
        addressLine6:
          $ref: '#/components/schemas/DI-006-Address-Line-6'
        addressLine7:
          $ref: '#/components/schemas/DI-007-Address-Line-7'
        addressLine8:
          $ref: '#/components/schemas/DI-008-Address-Line-8'
        addressLine9:
          $ref: '#/components/schemas/DI-009-Address-Line-9'
      description: MPAN Address
    DI-010-Metering-Point-Postcode:
      maxLength: 10
      minLength: 6
      type: string
      description: UK Post Code
      nullable: true
      example: SW1A 2AA
    DI-001-Address-Line-1:
      maxLength: 40
      minLength: 0
      type: string
      description: Address Line
      nullable: true
      example: Address Line
    DI-002-Address-Line-2:
      maxLength: 40
      minLength: 0
      type: string
      description: Address Line
      nullable: true
      example: Address Line
    DI-003-Address-Line-3:
      maxLength: 40
      minLength: 0
      type: string
      description: Address Line
      nullable: true
      example: Address Line
    DI-004-Address-Line-4:
      maxLength: 40
      minLength: 0
      type: string
      description: Address Line
      nullable: true
      example: Address Line
    DI-005-Address-Line-5:
      maxLength: 40
      minLength: 0
      type: string
      description: Address Line
      nullable: true
      example: Address Line
    DI-006-Address-Line-6:
      maxLength: 40
      minLength: 0
      type: string
      description: Address Line
      nullable: true
      example: Address Line
    DI-007-Address-Line-7:
      maxLength: 40
      minLength: 0
      type: string
      description: Address Line
      nullable: true
      example: Address Line
    DI-008-Address-Line-8:
      maxLength: 40
      minLength: 0
      type: string
      description: Address Line
      nullable: true
      example: Address Line
    DI-009-Address-Line-9:
      maxLength: 40
      minLength: 0
      type: string
      description: Address Line
      nullable: true
      example: Address Line
    B023:
      required:
      - connectionTypeEffectiveFromDate
      - connectionTypeIndicator
      - energyDirection
      - meteredIndicator
      type: object
      properties:
        connectionTypeIndicator:
          $ref: '#/components/schemas/DI-015-Connection-Type-Indicator'
        connectionTypeEffectiveFromDate:
          $ref: '#/components/schemas/DI-016-Connection-Type-Indicator-Effective-From-Date'
        energyDirection:
          $ref: '#/components/schemas/DI-035-Energy-Direction'
        meteredIndicator:
          $ref: '#/components/schemas/DI-127-Metered-Indicator'
      description: MPAN Connection Info
    DI-015-Connection-Type-Indicator:
      maxLength: 1
      minLength: 1
      type: string
      description: A code to indicate the type of connection.
      example: W
      enum:
      - W
      - L
      - H
      - E
      - U
    DI-016-Connection-Type-Indicator-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-035-Energy-Direction:
      maxLength: 1
      minLength: 1
      type: string
      description: Indicates the direction of energy at a metering point. Values can be I = import / E = export.
      example: I
      enum:
      - I
      - E
    DI-127-Metered-Indicator:
      type: boolean
      description: An indicator to show whether the Consumption Component is for a metered supply or unmetered supply.
    B024:
      required:
      - DUOSTariffID
      - DUOSTariffIDEffectiveFromDate
      type: object
      properties:
        DUOSTariffID:
          $ref: '#/components/schemas/DI-128-DUOS-Tariff-ID'
        DUOSTariffIDEffectiveFromDate:
          $ref: '#/components/schemas/DI-129-DUOS-Tariff-ID-Effective-From-Date'
      description: MPAN DUOS Tariff ID
    DI-128-DUOS-Tariff-ID:
      maxLength: 3
      minLength: 1
      type: string
      description: Reference to identify the DUoS Tariff assigned to an MPAN
      example: "999"
    DI-129-DUOS-Tariff-ID-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    B025:
      required:
      - energisationStatus
      - energisationStatusEffectiveFromDate
      type: object
      properties:
        energisationStatus:
          $ref: '#/components/schemas/DI-033-Energisation-Status'
        energisationStatusEffectiveFromDate:
          $ref: '#/components/schemas/DI-034-Energisation-Status-Effective-From-Date'
      description: MPAN Energisation Info
    DI-033-Energisation-Status:
      maxLength: 1
      minLength: 1
      type: string
      description: Indicates if the metering point is considered energised (i.e. connected to the distribution system) and therefore active for settlement purposes.
      example: D
      enum:
      - D
      - E
    DI-034-Energisation-Status-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    B026:
      required:
      - marketSegmentIndicator
      - marketSegmentIndicatorEffectiveFromDate
      type: object
      properties:
        marketSegmentIndicator:
          $ref: '#/components/schemas/DI-050-Market-Segment-Indicator'
        marketSegmentIndicatorEffectiveFromDate:
          $ref: '#/components/schemas/DI-051-Market-Segment-Indicator-Effective-From-Date'
      description: MPAN Segment Info
    DI-050-Market-Segment-Indicator:
      maxLength: 1
      type: string
      description: An enumeration of Smart/Advanced/Unmetered.
      example: S
      enum:
      - U
      - S
      - A
    DI-051-Market-Segment-Indicator-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    B027:
      required:
      - annualConsumption
      - annualConsumptionEffectiveFromDate
      - annualConsumptionQualityIndicator
      type: object
      properties:
        annualConsumption:
          $ref: '#/components/schemas/DI-148-Annual-Consumption'
        annualConsumptionEffectiveFromDate:
          $ref: '#/components/schemas/DI-149-Annual-Consumption-Effective-From-Date'
        annualConsumptionQualityIndicator:
          $ref: '#/components/schemas/DI-150-Annual-Consumption-Quality-Indicator'
      description: Assumed Annual Consumption
    DI-148-Annual-Consumption:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{3})?$"
      type: string
      description: "kWh Consumption (9,3) format"
      example: "123456789.123"
    DI-149-Annual-Consumption-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-150-Annual-Consumption-Quality-Indicator:
      maxLength: 1
      minLength: 1
      type: string
      description: Assumed Annual Consumption Quality Indicator
      nullable: true
      example: A
      enum:
      - A
      - "1"
      - "2"
      - "3"
      - "4"
      - "5"
      - D
      - null
    B029:
      required:
      - DCCEffectiveFromDate
      - DCCServiceFlag
      type: object
      properties:
        DCCServiceFlag:
          $ref: '#/components/schemas/DI-025-DCC-Service-Flag'
        DCCEffectiveFromDate:
          $ref: '#/components/schemas/DI-026-DCC-Effective-From-Date'
      description: DCC Enrolment Status
    DI-025-DCC-Service-Flag:
      maxLength: 1
      type: string
      description: A flag indicating the status of services being provided by the DCC for the metering point.
      nullable: true
      example: A
      enum:
      - A
      - I
      - "N"
      - null
    DI-026-DCC-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    B030:
      type: object
      properties:
        IHDInstallStatus:
          $ref: '#/components/schemas/DI-137-IHD-Install-Status'
        IHDEffectiveFromDate:
          $ref: '#/components/schemas/DI-136-IHD-Effective-From-Date'
      description: IHD Info
    DI-137-IHD-Install-Status:
      maxLength: 1
      type: string
      description: Information from the Supplier regarding the In Home Display at a metering point.
      nullable: true
      example: D
      enum:
      - I
      - D
      - E
      - F
      - null
    DI-136-IHD-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      nullable: true
      example: 2022-03-21T19:05:00+00:00
    B031:
      type: object
      properties:
        SMSOID:
          $ref: '#/components/schemas/DI-134-SMSO'
        SMSOEffectiveFromDate:
          $ref: '#/components/schemas/DI-135-SMSO-Effective-From-Date'
      description: SMSO Info
    DI-134-SMSO:
      maxLength: 4
      type: string
      description: The Id of the operator a Supplier has procured data and communication services from in respect of a Metering System (applies only to certain types of SMETS1 Metering).
      nullable: true
      example: TRIL
    DI-135-SMSO-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      nullable: true
      example: 2022-03-21T19:05:00+00:00
    B032:
      required:
      - SSC
      - SSCEffectiveFromDate
      - profileClass
      - profileClassEffectiveFromDate
      type: object
      properties:
        profileClass:
          $ref: '#/components/schemas/DI-122-Profile-Class'
        profileClassEffectiveFromDate:
          $ref: '#/components/schemas/DI-124-Profile-Class-Effective-From-Date'
        SSC:
          $ref: '#/components/schemas/DI-123-SSC'
        SSCEffectiveFromDate:
          $ref: '#/components/schemas/DI-125-SSC-Effective-From-Date'
      description: MPAN Legacy info
    DI-122-Profile-Class:
      maximum: 2
      type: string
      description: "A legacy classification, retained soley for a subset of Traditional Meters, to assist with the allocation of gross consumption to individual Settlement Periods."
      nullable: true
      example: "02"
    DI-124-Profile-Class-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      nullable: true
      example: 2022-03-21T19:05:00+00:00
    DI-123-SSC:
      maxLength: 4
      minLength: 4
      type: string
      description: "A legacy classification, retained soley for a subset of Traditional Meters, to assist with the allocation of gross consumption to individual Settlement Periods."
      example: "83"
    DI-125-SSC-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      nullable: true
      example: 2022-03-21T19:05:00+00:00
    B035:
      required:
      - importExportMPANSupplierDIPID
      - importExportMPANSupplierMPID
      - linkedImportExportMPAN
      - linkedMPANEnergyDirection
      type: object
      properties:
        linkedImportExportMPAN:
          $ref: '#/components/schemas/DI-038-Linked-ImportExport-MPAN'
        linkedMPANEnergyDirection:
          $ref: '#/components/schemas/DI-151-Linked-MPAN-Energy-Direction'
        importExportMPANSupplierDIPID:
          $ref: '#/components/schemas/DI-801-ImportExport-MPAN-Supplier-DIP-ID'
        importExportMPANSupplierMPID:
          $ref: '#/components/schemas/DI-212-ImportExport-MPAN-Supplier-MPID'
      description: Linked Import/Export MPAN Info
    DI-038-Linked-ImportExport-MPAN:
      maxLength: 13
      minLength: 13
      type: string
      description: MPAN Core
      example: "2000056535971"
    DI-151-Linked-MPAN-Energy-Direction:
      maxLength: 1
      minLength: 1
      type: string
      description: The Energy Direction (Import or Export) of a Linked MPAN
      nullable: false
      example: I
      enum:
      - I
      - E
    DI-801-ImportExport-MPAN-Supplier-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      nullable: true
      example: "1009012345"
    DI-212-ImportExport-MPAN-Supplier-MPID:
      maximum: 4
      minimum: 4
      type: string
      description: Legacy MPID
      nullable: true
      example: EMEB
    B037:
      required:
      - primaryMPAN
      - secondaryMPAN
      type: object
      properties:
        primaryMPAN:
          $ref: '#/components/schemas/DI-075-Primary-MPAN'
        secondaryMPAN:
          $ref: '#/components/schemas/DI-079-Secondary-MPAN'
      description: Linked Related MPAN Info
    DI-075-Primary-MPAN:
      maxLength: 13
      type: string
      description: MPAN Core
      nullable: true
      example: "2000056535971"
    DI-079-Secondary-MPAN:
      maxLength: 13
      type: string
      description: MPAN Core
      nullable: true
      example: "2000056535971"
    IF-002-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-002-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-002-CustomBlock'
      description: IF002 Message
    IF-002-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF002CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-002
    IF-002-CustomBlock:
      type: object
      properties:
        B013:
          $ref: '#/components/schemas/B013'
        B005:
          $ref: '#/components/schemas/B005'
        B006:
          $ref: '#/components/schemas/B006'
        B022:
          $ref: '#/components/schemas/B022'
        B023:
          $ref: '#/components/schemas/B023'
        B024:
          $ref: '#/components/schemas/B024'
        B025:
          $ref: '#/components/schemas/B025'
        B026:
          $ref: '#/components/schemas/B026'
        B027:
          $ref: '#/components/schemas/B027'
        B029:
          $ref: '#/components/schemas/B029'
        B030:
          $ref: '#/components/schemas/B030'
        B031:
          $ref: '#/components/schemas/B031'
        B032:
          $ref: '#/components/schemas/B032'
        B905List:
          type: array
          items:
            $ref: '#/components/schemas/B905'
        B907List:
          type: array
          items:
            $ref: '#/components/schemas/B907'
        B908List:
          type: array
          items:
            $ref: '#/components/schemas/B908'
      description: IF002 Custom data block
    B905:
      type: object
      properties:
        existingMeter:
          $ref: '#/components/schemas/B074'
        existingMAP:
          $ref: '#/components/schemas/B075'
      description: Meter-Map
    B074:
      required:
      - ESMEGUID
      - meterID
      - meterInstallationDate
      - meterLocation
      - meterManufacturer
      - meterType
      - numberOfDisplayedRegisterDigits
      type: object
      properties:
        meterID:
          $ref: '#/components/schemas/DI-056-Meter-ID'
        meterType:
          $ref: '#/components/schemas/DI-059-Meter-Type'
        meterManufacturer:
          $ref: '#/components/schemas/DI-048-Meter-Manufacturer'
        ESMEGUID:
          $ref: '#/components/schemas/DI-085-ESME-GUID'
        meterLocation:
          $ref: '#/components/schemas/DI-090-Meter-Location'
        numberOfDisplayedRegisterDigits:
          $ref: '#/components/schemas/DI-091-Number-Of-Displayed-Register-Digits'
        meterInstallationDate:
          $ref: '#/components/schemas/DI-057-Meter-Installation-Date'
      description: MPAN Exiting Meter Info
    DI-056-Meter-ID:
      maximum: 10
      type: string
      description: Meter ID
      example: A123456789
    DI-059-Meter-Type:
      maxLength: 5
      type: string
      description: "The type of meter, in relation to its capabilities. E.g. AMR.S1, S2, S2ADE"
      example: S2CDE
    DI-048-Meter-Manufacturer:
      maxLength: 60
      type: string
      description: The Meter Manufacturer Code
      nullable: true
      example: SIEMENS ZMD120AR44.0200.C4
    DI-085-ESME-GUID:
      maxLength: 23
      type: string
      description: The Smart Device ID for a smart meter.  This is also known as the DCC GUID and is further defined within the DCC interface specifications.
      nullable: true
      example: SC-12-34-56-78-90-12-34
    DI-090-Meter-Location:
      maxLength: 1
      type: string
      description: The actual location of the metering system within the site
      example: A
      enum:
      - A
      - B
      - C
      - D
      - E
      - F
      - G
      - H
      - I
      - J
      - K
      - L
      - M
      - "N"
      - O
      - P
      - R
      - S
      - T
      - U
      - V
      - W
      - X
      - "Y"
      - Z
    DI-091-Number-Of-Displayed-Register-Digits:
      maximum: 1
      minimum: 1
      type: integer
      description: "Number of digits/dials to the left of the decimal point, of the Cumulative Register."
      nullable: true
      example: 5
    DI-057-Meter-Installation-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    B075:
      required:
      - meterAssetProviderEffectiveFromDate
      - meterAssetProviderID
      properties:
        meterAssetProviderID:
          $ref: '#/components/schemas/DI-055-Meter-Asset-Provider-ID'
        meterAssetProviderEffectiveFromDate:
          $ref: '#/components/schemas/DI-054-Meter-Asset-Provider-Effective-From-Date'
      description: MPAN Exiting Meter Map Info
    DI-055-Meter-Asset-Provider-ID:
      maxLength: 4
      minLength: 4
      type: string
      description: The market-wide reference for the provider of the meter equipment.
      example: MAP1
    DI-054-Meter-Asset-Provider-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    B907:
      type: object
      properties:
        existingMeter:
          $ref: '#/components/schemas/B035'
        historyMAP:
          type: array
          items:
            $ref: '#/components/schemas/B910'
      description: LinkedImpExp-MPAN-Meter-MAP
    B910:
      type: object
      properties:
        existingMeter:
          $ref: '#/components/schemas/B036'
        historyMAP:
          type: array
          items:
            $ref: '#/components/schemas/B075'
      description: Meter details - MAP history
    B036:
      required:
      - ESMEGUID
      - meterID
      - meterInstallationDate
      - meterLocation
      - meterManufacturer
      - meterType
      - numberOfDisplayedRegisterDigits
      type: object
      properties:
        meterID:
          $ref: '#/components/schemas/DI-056-Meter-ID'
        meterType:
          $ref: '#/components/schemas/DI-059-Meter-Type'
        meterManufacturer:
          $ref: '#/components/schemas/DI-048-Meter-Manufacturer'
        ESMEGUID:
          $ref: '#/components/schemas/DI-085-ESME-GUID'
        meterLocation:
          $ref: '#/components/schemas/DI-090-Meter-Location'
        numberOfDisplayedRegisterDigits:
          $ref: '#/components/schemas/DI-091-Number-Of-Displayed-Register-Digits'
        meterInstallationDate:
          $ref: '#/components/schemas/DI-057-Meter-Installation-Date'
      description: Linked Import/Export Meter Info
    B908:
      type: object
      properties:
        existingMeter:
          $ref: '#/components/schemas/B037'
        historyMAP:
          type: array
          items:
            $ref: '#/components/schemas/B911'
      description: Related-MPAN-Meter-MAP
    B911:
      type: object
      properties:
        existingMeter:
          $ref: '#/components/schemas/B038'
        historyMAP:
          type: array
          items:
            $ref: '#/components/schemas/B075'
      description: Related Meter details - MAP history
    B038:
      required:
      - ESMEGUID
      - meterID
      - meterInstallationDate
      - meterLocation
      - meterManufacturer
      - meterType
      - numberOfDisplayedRegisterDigits
      type: object
      properties:
        meterID:
          $ref: '#/components/schemas/DI-056-Meter-ID'
        meterType:
          $ref: '#/components/schemas/DI-059-Meter-Type'
        meterManufacturer:
          $ref: '#/components/schemas/DI-048-Meter-Manufacturer'
        ESMEGUID:
          $ref: '#/components/schemas/DI-085-ESME-GUID'
        meterLocation:
          $ref: '#/components/schemas/DI-090-Meter-Location'
        numberOfDisplayedRegisterDigits:
          $ref: '#/components/schemas/DI-091-Number-Of-Displayed-Register-Digits'
        meterInstallationDate:
          $ref: '#/components/schemas/DI-057-Meter-Installation-Date'
      description: Linked Related Meter Info
    IF-003-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-003-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-003-CustomBlock'
      description: IF-003 Notification of Reverse Migration De-Appointment
    IF-003-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF003CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-033
    IF-003-CustomBlock:
      type: object
      properties:
        B013:
          $ref: '#/components/schemas/B013'
        B094:
          $ref: '#/components/schemas/B094'
        B008:
          $ref: '#/components/schemas/B008'
        B009:
          $ref: '#/components/schemas/B009'
        B095:
          $ref: '#/components/schemas/B095'
        B096:
          $ref: '#/components/schemas/B096'
      description: IF033 Custom data block
    B094:
      type: object
      properties:
        MHHSRegimeEndDate:
          $ref: '#/components/schemas/DI-500-MHHS-Regime-End-Date'
      description: Reverse Migration Notification
    DI-500-MHHS-Regime-End-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    B008:
      required:
      - deAppointedMeteringServiceDIPID
      - deAppointedMeteringServiceMPID
      - deAppointmentReasonCode
      - meteringServiceEffectiveFromDate
      - meteringServiceEffectiveToDate
      type: object
      properties:
        deAppointedMeteringServiceDIPID:
          $ref: '#/components/schemas/DI-813-De-Appointed-Metering-Service-DIP-ID'
        deAppointedMeteringServiceMPID:
          $ref: '#/components/schemas/DI-202-De-Appointed-Metering-Service-MPID'
        meteringServiceEffectiveFromDate:
          $ref: '#/components/schemas/DI-061-Metering-Service-Effective-From-Date'
        meteringServiceEffectiveToDate:
          $ref: '#/components/schemas/DI-815-Metering-Service-Effective-To-Date'
        deAppointmentReasonCode:
          $ref: '#/components/schemas/DI-819-De-Appointment-Reason-Code'
      description: Metering Service Deappointment Details
    DI-813-De-Appointed-Metering-Service-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    DI-202-De-Appointed-Metering-Service-MPID:
      maximum: 4
      minimum: 4
      type: string
      description: Legacy MPID
      example: EMEB
    DI-061-Metering-Service-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-815-Metering-Service-Effective-To-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-819-De-Appointment-Reason-Code:
      maxLength: 10
      type: string
      description: A code indicating reason for termination of Service Provider Appointment
      enum:
      - CSUPP
      - CSERV
      - DEREG
      - CSEGM
      - CCONN
      - IMPEXP
      - RELATED
    B009:
      required:
      - dataServiceEffectiveFromDate
      - dataServiceEffectiveToDate
      - deAppointedDataServiceDIPID
      - deAppointedDataServiceMPID
      - deAppointmentReasonCode
      type: object
      properties:
        deAppointedDataServiceDIPID:
          $ref: '#/components/schemas/DI-816-De-Appointed-Data-Service-DIP-ID'
        deAppointedDataServiceMPID:
          $ref: '#/components/schemas/DI-203-De-Appointed-Data-Service-MPID'
        dataServiceEffectiveFromDate:
          $ref: '#/components/schemas/DI-023-Data-Service-Effective-From-Date'
        dataServiceEffectiveToDate:
          $ref: '#/components/schemas/DI-818-Data-Service-Effective-To-Date'
        deAppointmentReasonCode:
          $ref: '#/components/schemas/DI-819-De-Appointment-Reason-Code'
      description: Data Service DeAppointment Details
    DI-816-De-Appointed-Data-Service-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    DI-203-De-Appointed-Data-Service-MPID:
      maximum: 4
      minimum: 4
      type: string
      description: Legacy MPID
      example: EMEB
    DI-023-Data-Service-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-818-Data-Service-Effective-To-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    B095:
      type: object
      properties:
        ReverseMigrationIncomingMOPMPID:
          $ref: '#/components/schemas/DI-501-Reverse-Migration-Incoming-MOP-MPID'
        ReverseMigrationIncomingMOPEffectiveFromDate:
          $ref: '#/components/schemas/DI-502-Reverse-Migration-Incoming-MOP-Effective-From-Date'
      description: Reverse Migration Incoming MOP Details
    DI-501-Reverse-Migration-Incoming-MOP-MPID:
      maxLength: 4
      type: string
      description: Supplier MPID  - as defined in ISD
      example: EMEB
    DI-502-Reverse-Migration-Incoming-MOP-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    B096:
      type: object
      properties:
        ReverseMigrationIncomingDCMPID:
          $ref: '#/components/schemas/DI-503-Reverse-Migration-Incoming-DC-MPID'
        ReverseMigrationIncomingDCEffectiveFromDate:
          $ref: '#/components/schemas/DI-504-Reverse-Migration-Incoming-DC-Effective-From-Date'
      description: Reverse Migration Incoming DC Details
    DI-503-Reverse-Migration-Incoming-DC-MPID:
      maxLength: 4
      type: string
      description: Supplier MPID  - as defined in ISD
      example: EMEB
    DI-504-Reverse-Migration-Incoming-DC-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    IF-004-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-004-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-004-CustomBlock'
      description: IF005 Message
    IF-004-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF004CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-004
    IF-004-CustomBlock:
      type: object
      properties:
        B093:
          $ref: '#/components/schemas/B093'
      description: IF005 Custom data block
    B093:
      required:
      - GPFGasGUID
      - commsHubActivity
      - commsHubFWVersion
      - commsHubGUID
      - commsHubInstallationDate
      - commsHubSerialNumber
      type: object
      properties:
        commsHubActivity:
          $ref: '#/components/schemas/DI-195-Comms-Hub-Activity'
        commsHubSerialNumber:
          $ref: '#/components/schemas/DI-190-Comms-Hub-Serial-Number'
        commsHubGUID:
          $ref: '#/components/schemas/DI-191-Comms-Hub-GUID'
        GPFGasGUID:
          $ref: '#/components/schemas/DI-192-GPF-Gas-GUID'
        commsHubInstallationDate:
          $ref: '#/components/schemas/DI-193-Comms-Hub-Installation-Date'
        commsHubFWVersion:
          $ref: '#/components/schemas/DI-194-Comms-Hub-FW-Version'
      description: Comms Hub Info
    DI-195-Comms-Hub-Activity:
      maxLength: 1
      type: string
      description: Comms Hub Activity Type
      nullable: false
      enum:
      - "1"
      - "2"
      - "3"
      - "4"
      - "5"
    DI-190-Comms-Hub-Serial-Number:
      maxLength: 50
      type: string
      description: Comms Hub Serial Number
    DI-191-Comms-Hub-GUID:
      maxLength: 23
      minLength: 23
      type: string
      description: Comms HUB GUID
    DI-192-GPF-Gas-GUID:
      maxLength: 23
      minLength: 23
      type: string
      description: Comms Hub Associated Gas GUID
      nullable: true
    DI-193-Comms-Hub-Installation-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      nullable: true
      example: 2022-03-21T19:05:00+00:00
    DI-194-Comms-Hub-FW-Version:
      maxLength: 50
      type: string
      description: Comms Hub Firmware Version (if available)
      nullable: true
    IF-005-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-005-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-005-CustomBlock'
      description: IF005 Message
    IF-005-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF005CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-005
    IF-005-CustomBlock:
      type: object
      properties:
        B906:
          $ref: '#/components/schemas/B906'
        B039:
          $ref: '#/components/schemas/B039'
        B030:
          $ref: '#/components/schemas/B030'
      description: IF005 Custom data block
    B906:
      type: object
      properties:
        existingMeter:
          $ref: '#/components/schemas/B033'
        historyMAP:
          type: array
          items:
            $ref: '#/components/schemas/B034'
      description: Meter-Map History
    B033:
      required:
      - ESMEGUID
      - meterID
      - meterInstallationDate
      - meterLocation
      - meterManufacturer
      - meterType
      - meteringPointPostcode
      - modifiedMeterID
      - numberOfDisplayedRegisterDigits
      type: object
      properties:
        meterID:
          $ref: '#/components/schemas/DI-056-Meter-ID'
        modifiedMeterID:
          $ref: '#/components/schemas/DI-060-Modified-Meter-ID'
        meterType:
          $ref: '#/components/schemas/DI-059-Meter-Type'
        meterManufacturer:
          $ref: '#/components/schemas/DI-048-Meter-Manufacturer'
        ESMEGUID:
          $ref: '#/components/schemas/DI-085-ESME-GUID'
        meterLocation:
          $ref: '#/components/schemas/DI-090-Meter-Location'
        numberOfDisplayedRegisterDigits:
          $ref: '#/components/schemas/DI-091-Number-Of-Displayed-Register-Digits'
        meterInstallationDate:
          $ref: '#/components/schemas/DI-057-Meter-Installation-Date'
      description: MPAN Meter info
    DI-060-Modified-Meter-ID:
      maximum: 10
      type: string
      description: Meter ID
      nullable: true
      example: A123456789
    B034:
      required:
      - meterAssetProviderEffectiveFromDate
      - meterAssetProviderID
      type: object
      properties:
        meterAssetProviderID:
          $ref: '#/components/schemas/DI-055-Meter-Asset-Provider-ID'
        meterAssetProviderEffectiveFromDate:
          $ref: '#/components/schemas/DI-054-Meter-Asset-Provider-Effective-From-Date'
      description: MAP Info
    B039:
      required:
      - meterIDRemoved
      - meterRemovalDate
      type: object
      properties:
        meterIDRemoved:
          $ref: '#/components/schemas/DI-053-Meter-ID-Removed'
        meterRemovalDate:
          $ref: '#/components/schemas/DI-058-Meter-Removal-Date'
      description: Removed Meter Info
    DI-053-Meter-ID-Removed:
      maximum: 10
      type: string
      description: Meter ID
      example: A123456789
    DI-058-Meter-Removal-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      nullable: true
      example: 2022-03-21T19:05:00+00:00
    IF-006-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-006-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-006-CustomBlock'
      description: IF006 - Metering Service MTD Update to Registration
    IF-006-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF006CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
        R0:
          $ref: '#/components/schemas/R0'
      description: MHHS Common Block for IF-006
    R0:
      required:
      - responseCode
      - responseMessages
      type: object
      properties:
        responseCode:
          $ref: '#/components/schemas/DI-979-Response-Code'
        responseMessages:
          type: array
          description: Response message outcomes
          items:
            $ref: '#/components/schemas/DI-980-Status-Error-Messages'
      description: Response Block
    DI-979-Response-Code:
      maxLength: 1
      minLength: 1
      type: string
      description: Outcome Code associated with a Business Process Action Request
      example: A
      enum:
      - A
      - R
      - L
    DI-980-Status-Error-Messages:
      maxLength: 200
      type: string
      description: Status/Error messages
      nullable: true
      example: MSG0101 Application 101 error message
    IF-006-CustomBlock:
      type: object
      properties:
        B906:
          $ref: '#/components/schemas/B906'
        B039:
          $ref: '#/components/schemas/B039'
        B030:
          $ref: '#/components/schemas/B030'
        B905List:
          type: array
          items:
            $ref: '#/components/schemas/B905'
      description: IF005 Custom data block
    IF-007-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-007-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-007-CustomBlock'
      description: IF007 - Change of Energisation Status
    IF-007-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF007CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-007
    IF-007-CustomBlock:
      type: object
      properties:
        B025:
          $ref: '#/components/schemas/B025'
        B040:
          $ref: '#/components/schemas/B040'
      description: IF007 Custom data block
    B040:
      required:
      - additionalInformationSiteVisit
      - failureEnergiseDeEnergiseReasonCode
      - natureofMaintenanceEnergisationStatus
      - siteVisitCheckCode
      type: object
      properties:
        failureEnergiseDeEnergiseReasonCode:
          $ref: '#/components/schemas/DI-097-Failure-Energise-De-Energise-Reason-Code'
        siteVisitCheckCode:
          $ref: '#/components/schemas/DI-096-Site-Visit-Check-Code'
        natureofMaintenanceEnergisationStatus:
          $ref: '#/components/schemas/DI-092-Nature-of-Maintenance-Energisation-Status'
        additionalInformationSiteVisit:
          $ref: '#/components/schemas/DI-093-Additional-Information-SiteVisit'
      description: Failed Change to Energisation
    DI-097-Failure-Energise-De-Energise-Reason-Code:
      maxLength: 2
      type: string
      description: The reason why the Energisation or De-Energisation has not been carried out.
      example: "09"
      enum:
      - "01"
      - "02"
      - "03"
      - "05"
      - "07"
      - "08"
      - "09"
      - "10"
      - "11"
      - "12"
      - "13"
      - "14"
      - "15"
      - "16"
      - "17"
      - "18"
      - "19"
    DI-096-Site-Visit-Check-Code:
      maxLength: 2
      type: string
      description: A code identifying either nature of checks made/to be made on metering equipment during a site visit or identifying reason for failure to obtain readings.
      nullable: true
      example: "18"
      enum:
      - "01"
      - "02"
      - "03"
      - "04"
      - "05"
      - "06"
      - "07"
      - "08"
      - "09"
      - "10"
      - "11"
      - "13"
      - "14"
      - "15"
      - "16"
      - "17"
      - "18"
      - "19"
      - "20"
      - "21"
      - "22"
      - "23"
      - "24"
      - "25"
      - "26"
      - "27"
      - "28"
      - "29"
      - "30"
      - "31"
      - "32"
      - "33"
      - "34"
      - "35"
      - "36"
      - "37"
      - "38"
      - "39"
      - "40"
      - "41"
      - "42"
      - "43"
      - "44"
      - "50"
      - "51"
      - "52"
      - "53"
      - "54"
      - "55"
      - "56"
      - "57"
      - "58"
      - "88"
      - "89"
      - null
    DI-092-Nature-of-Maintenance-Energisation-Status:
      maxLength: 200
      type: string
      description: Free text field for maintenance information
      nullable: true
      example: Free format Maintenance Notes
    DI-093-Additional-Information-SiteVisit:
      maxLength: 2000
      type: string
      description: Free text field for site information
      nullable: true
      example: Free format Additional Information Notes
    IF-008-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-008-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-008-CustomBlock'
      description: IF008 - Registration Service Change of Energisation Status Notification
    IF-008-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF008CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
        R0:
          $ref: '#/components/schemas/R0'
      description: MHHS Common Block for IF-008
    IF-008-CustomBlock:
      type: object
      properties:
        B025:
          $ref: '#/components/schemas/B025'
      description: IF008 Custom data block
    IF-009-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-009-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-009-CustomBlock'
      description: IF009 Registration Service CSS De-Registration Notification
    IF-009-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF009CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-009
    IF-009-CustomBlock:
      type: object
      properties:
        B041:
          $ref: '#/components/schemas/B041'
        B042:
          $ref: '#/components/schemas/B042'
      description: IF009 Custom data block
    B041:
      required:
      - additionalInformation
      - disconnectionDate
      type: object
      properties:
        disconnectionEffectiveFromDate:
          $ref: '#/components/schemas/DI-027-Disconnection-Effective-From-Date'
        additionalInformation:
          $ref: '#/components/schemas/DI-120-Additional-Information'
      description: Disconnection Info
    DI-027-Disconnection-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-120-Additional-Information:
      maxLength: 2000
      type: string
      description: A free format character string for providing additional details.
      nullable: true
      example: This is an example for additional info
    B042:
      required:
      - CSSMPANDeRegistrationDate
      type: object
      properties:
        CSSMPANDeRegistrationDate:
          $ref: '#/components/schemas/DI-077-CSS-RMP-DeActivation-Date'
      description: CSS De-Registration
    DI-077-CSS-RMP-DeActivation-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    IF-013-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-013-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-013-CustomBlock'
      description: IF-013 Notification of Defaulted UTC Settlement Period Consumption Data
    IF-013-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF013CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-013
    IF-013-CustomBlock:
      type: object
      properties:
        B043:
          $ref: '#/components/schemas/B043'
        B049:
          $ref: '#/components/schemas/B049'
        B067:
          $ref: '#/components/schemas/B067'
        B920List:
          type: array
          items:
            $ref: '#/components/schemas/B920'
      description: IF013 Custom data block
    B043:
      required:
      - settlementImpactedDataServiceDIPID
      - settlementImpactedSupplierDIPID
      type: object
      properties:
        settlementImpactedDataServiceDIPID:
          $ref: '#/components/schemas/DI-155-Settlement-Impacted-Data-Service-DIP-ID'
        settlementImpactedSupplierDIPID:
          $ref: '#/components/schemas/DI-157-Settlement-Impacted-Supplier-DIP-ID'
      description: Settlement Impacted Parties
    DI-155-Settlement-Impacted-Data-Service-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    DI-157-Settlement-Impacted-Supplier-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    B049:
      required:
      - settlementCode
      - settlementRunExecutionDate
      type: object
      properties:
        settlementRunExecutionDate:
          $ref: '#/components/schemas/DI-159-Settlement-Run-Execution-Date'
        settlementCode:
          $ref: '#/components/schemas/DI-160-Settlement-Code'
        runNumber:
          $ref: '#/components/schemas/DI-161-Run-Number'
      description: Settlement Period Run Info
    DI-159-Settlement-Run-Execution-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-160-Settlement-Code:
      maxLength: 2
      type: string
      description: "A code which, together with the Settlement Date, identifies a Settlement published in the Settlement Timetable. It identifies the type of Settlement."
      example: RF
      enum:
      - SF
      - R1
      - R2
      - R3
      - RF
      - DR
      - DF
    DI-161-Run-Number:
      maximum: 9999999
      type: number
      description: "The identifier, unique within an Agent system, which identifies a run of that system."
      nullable: true
      example: 1234567
    B067:
      required:
      - connectionTypeEffectiveFromDate
      - connectionTypeIndicator
      type: object
      properties:
        connectionTypeIndicator:
          $ref: '#/components/schemas/DI-015-Connection-Type-Indicator'
        connectionTypeEffectiveFromDate:
          $ref: '#/components/schemas/DI-016-Connection-Type-Indicator-Effective-From-Date'
      description: Connection Type
    B920:
      type: object
      properties:
        MQID:
          $ref: '#/components/schemas/B050'
        settlementDayConsumptionPeriods:
          type: array
          items:
            $ref: '#/components/schemas/B922'
      description: MQID (B045) Settlement Day Consumption periods with default (B901)
    B050:
      required:
      - consumptionComponentClassID
      - consumptionComponentIndicator
      - domesticPremiseIndicator
      - marketSegmentIndicator
      - measurementQuantityID
      type: object
      properties:
        measurementQuantityID:
          $ref: '#/components/schemas/DI-052-Measurement-Quantity-ID'
        marketSegmentIndicator:
          $ref: '#/components/schemas/DI-050-Market-Segment-Indicator'
        domesticPremiseIndicator:
          $ref: '#/components/schemas/DI-030-Domestic-Premise-Indicator'
        consumptionComponentClassID:
          $ref: '#/components/schemas/DI-300-Consumption-Component-Class-ID'
        consumptionComponentIndicator:
          $ref: '#/components/schemas/DI-080-Consumption-Component-Indicator'
      description: CCC Determination Data
    DI-052-Measurement-Quantity-ID:
      maxLength: 2
      minLength: 2
      type: string
      description: Identifies the type of the quantity that is measured by the Settlement Period Value.
      example: AI
      enum:
      - AI
      - AE
      - RI
      - RE
    DI-300-Consumption-Component-Class-ID:
      maximum: 999
      type: integer
      description: The reference number for a consumption component class.
      example: 123
    DI-080-Consumption-Component-Indicator:
      maxLength: 1
      type: string
      description: The consumption component indictor
      enum:
      - C
      - L
    B922:
      type: object
      properties:
        settlementDay:
          $ref: '#/components/schemas/B046'
        defaultedConsumptionPeriods:
          type: array
          items:
            $ref: '#/components/schemas/B048'
      description: Settlement Day (B046) and defaulted data (B048)
    B046:
      required:
      - settlementDayDate
      - settlementPeriodDuration
      type: object
      properties:
        settlementDayDate:
          $ref: '#/components/schemas/DI-101-Settlement-Day-Date'
        settlementPeriodDuration:
          $ref: '#/components/schemas/DI-081-Settlement-Period-Duration'
      description: Settlement Day
    DI-101-Settlement-Day-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-081-Settlement-Period-Duration:
      multipleOf: 15
      maximum: 30
      minimum: 30
      type: integer
      description: The settlement period duration in minutes.
      example: 30
    B048:
      required:
      - defaultLoadShapeFlag
      - defaultedSPConsumption
      - settlementPeriodEffectiveToDateTime
      type: object
      properties:
        settlementPeriodEffectiveToDateTime:
          $ref: '#/components/schemas/DI-082-Settlement-Period-Effective-To-DateTime'
        defaultedSPConsumption:
          $ref: '#/components/schemas/DI-153-Defaulted-SP-Consumption'
        defaultLoadShapeFlag:
          $ref: '#/components/schemas/DI-154-Default-Load-Shape-Flag'
      description: Settlement Period Consumption Defaulted Data
    DI-082-Settlement-Period-Effective-To-DateTime:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-153-Defaulted-SP-Consumption:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{3})?$"
      type: string
      description: "kWh Consumption (9,3) format"
      example: "123456789.123"
    DI-154-Default-Load-Shape-Flag:
      maxLength: 1
      type: string
      description: Flag incicating nature / quality of LS used for determining Defaulted Consumption for SP
      example: A
      enum:
      - A
      - D
      - E
      - B
    IF-014-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-014-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-014-CustomBlock'
      description: IF-014 Rejected - UTC Settlement Period Consumption Data
    IF-014-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF014CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
        R0:
          $ref: '#/components/schemas/R0'
      description: MHHS Common Block for IF-014
    IF-014-CustomBlock:
      type: object
      properties:
        B044:
          $ref: '#/components/schemas/B044'
        B067:
          $ref: '#/components/schemas/B067'
        B900List:
          type: array
          items:
            $ref: '#/components/schemas/B900'
      description: IF014 Custom data block
    B044:
      required:
      - issuingDataServiceDIPID
      type: object
      properties:
        issuingDataServiceDIPID:
          $ref: '#/components/schemas/DI-845-Issuing-Data-Service-DIP-ID'
      description: Issuing Data Service
    DI-845-Issuing-Data-Service-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    B900:
      type: object
      properties:
        MQID:
          $ref: '#/components/schemas/B045'
        settlementDayConsumptionPeriods:
          maxItems: 150
          type: array
          items:
            $ref: '#/components/schemas/B901'
      description: MQID (B045) Settlement Day Consumption periods (B901)
    B045:
      required:
      - measurementQuantityID
      type: object
      properties:
        measurementQuantityID:
          $ref: '#/components/schemas/DI-052-Measurement-Quantity-ID'
      description: MQ ID
    B901:
      type: object
      properties:
        settlementDay:
          $ref: '#/components/schemas/B046'
        consumptionPeriods:
          type: array
          items:
            $ref: '#/components/schemas/B047'
      description: Settlement Day (B046) - SP consumption data (multiple child) block (B047)
    B047:
      required:
      - arc
      - e
      - q
      - sp
      - v
      type: object
      properties:
        sp:
          $ref: '#/components/schemas/DI-082-Settlement-Period-Effective-To-DateTime'
        v:
          $ref: '#/components/schemas/DI-147-Period-Consumption-Value'
        q:
          $ref: '#/components/schemas/DI-083-Settlement-Period-Quality-Indicator'
        e:
          $ref: '#/components/schemas/DI-076-Estimation-Reason-Code'
        arc:
          $ref: '#/components/schemas/DI-166-Supplier-Consumption-Amendment-Reason-Code'
      description: Settlement Period Consumption Data
    DI-147-Period-Consumption-Value:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{3})?$"
      type: string
      description: "kWh Consumption (9,3) format"
      example: "123456789.123"
    DI-083-Settlement-Period-Quality-Indicator:
      maxLength: 5
      minLength: 1
      type: string
      description: Describes if the Settlement Period Value is an actual or an estimate.
      example: ZE1
      enum:
      - A
      - E
      - E0
      - E1
      - E2
      - E3
      - E4
      - E5
      - E6
      - E7
      - E8
      - E9
      - ZE
      - ZE1
      - ZE2
      - ZE3
      - A1
      - A2
      - A3
      - AAE1
      - AAE2
      - AAE3
      - EAE1
      - EAE2
      - EAE3
    DI-076-Estimation-Reason-Code:
      maxLength: 2
      type: string
      description: Used inconjunction with Settlement Period Quality Indicator to explain why data has been estimated
      nullable: true
      example: "1"
      enum:
      - "1"
      - "2"
      - "3"
      - "4"
      - "5"
      - "6"
      - "7"
      - "8"
      - "9"
      - "10"
      - null
    DI-166-Supplier-Consumption-Amendment-Reason-Code:
      maxLength: 1
      type: string
      description: Consumption Amendment Reason Code
      nullable: true
      example: A
      enum:
      - A
      - E
      - M
      - R
      - S
      - T
      - X
      - null
    IF-015-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-015-CommonBlock'
      description: IF-015 Request Historic Consumption Replay (ADV Sites Only)
    IF-015-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF015CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-015
    IF-016-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-016-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-016-CustomBlock'
      description: IF-016 UTC Settlement Period Consumption Data - REPLAY
    IF-016-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF016CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-016
    IF-016-CustomBlock:
      type: object
      properties:
        B044:
          $ref: '#/components/schemas/B044'
        B067:
          $ref: '#/components/schemas/B067'
        B900List:
          type: array
          description: MQID (B045)
          items:
            $ref: '#/components/schemas/B900'
        B921List:
          type: array
          description: Settlement Day (B046) - block B047 and defaulted data (B048)
          items:
            $ref: '#/components/schemas/B921'
      description: IF016 Custom data block
    B921:
      type: object
      properties:
        settlementDay:
          $ref: '#/components/schemas/B046'
        consumptionPeriods:
          type: array
          items:
            $ref: '#/components/schemas/B047'
        defaultedConsumptionPeriods:
          type: array
          items:
            $ref: '#/components/schemas/B048'
      description: Settlement Day (B046) - UTC Period Cons B047 and defaulted data (B048)
    IF-018-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-018-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-018-CustomBlock'
      description: IF-018 Notification of Registration Data Item Changes
    IF-018-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF018CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M1:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-018
    IF-018-CustomBlock:
      type: object
      properties:
        B013:
          $ref: '#/components/schemas/B013'
        B001:
          $ref: '#/components/schemas/B001'
        B022:
          $ref: '#/components/schemas/B022'
        B023:
          $ref: '#/components/schemas/B023'
        B024:
          $ref: '#/components/schemas/B024'
        B028:
          $ref: '#/components/schemas/B028'
        B029:
          $ref: '#/components/schemas/B029'
      description: IF018 Custom data block
    B001:
      required:
      - GSPGroupEffectiveFromDate
      type: object
      properties:
        GSPGroupEffectiveFromDate:
          $ref: '#/components/schemas/DI-036-GSP-Group-Effective-From-Date'
      description: GSP Effective From
    DI-036-GSP-Group-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    B028:
      required:
      - domesticPremiseIndicator
      - domesticPremiseIndicatorEffectiveFromDate
      type: object
      properties:
        domesticPremiseIndicator:
          $ref: '#/components/schemas/DI-030-Domestic-Premise-Indicator'
        domesticPremiseIndicatorEffectiveFromDate:
          $ref: '#/components/schemas/DI-032-Domestic-Premise-Indicator-Effective-From-Date'
      description: MPAN Dom Premise Indicator
    IF-019-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-019-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-019-CustomBlock'
      description: IF-019 Manage Meterpoint Relationships
    IF-019-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF019CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M1:
          $ref: '#/components/schemas/M1'
      description: MHHS Common Block for IF-019
    M1:
      required:
      - GSPGroupID
      - distributorDIPID
      - principalMPAN
      type: object
      properties:
        principalMPAN:
          $ref: '#/components/schemas/DI-073-Principal-MPAN'
        distributorDIPID:
          $ref: '#/components/schemas/DI-108-Distributor-DIP-ID'
        GSPGroupID:
          $ref: '#/components/schemas/DI-037-GSP-Group-ID'
      description: Principal MPAN
    DI-073-Principal-MPAN:
      maxLength: 13
      minLength: 13
      type: string
      description: MPAN Core
      example: "2000056535971"
    IF-019-CustomBlock:
      type: object
      properties:
        B090List:
          type: array
          items:
            $ref: '#/components/schemas/B090'
        B091:
          $ref: '#/components/schemas/B091'
      description: IF019 Custom data block
    B090:
      required:
      - subsidiaryMPAN
      properties:
        subsidiaryMPAN:
          $ref: '#/components/schemas/DI-074-Subsidiary-MPAN'
      description: Subsidiary MPAN
    DI-074-Subsidiary-MPAN:
      maxLength: 13
      minLength: 13
      type: string
      description: MPAN Core
      example: "2000056535971"
    B091:
      required:
      - additionalInformation
      properties:
        additionalInformation:
          $ref: '#/components/schemas/DI-120-Additional-Information'
      description: MPAN  Relationship Additional Infromation
    IF-020-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-020-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-020-CustomBlock'
      description: IF-020 Manage Meterpoint Relationships Response
    IF-020-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF020CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M1:
          $ref: '#/components/schemas/M1'
        R0:
          $ref: '#/components/schemas/R0'
      description: MHHS Common Block for IF-020
    IF-020-CustomBlock:
      type: object
      properties:
        B090List:
          type: array
          items:
            $ref: '#/components/schemas/B090'
        B091:
          $ref: '#/components/schemas/B091'
      description: IF020 Custom data block
    IF-021-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-021-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-021-CustomBlock'
      description: IF-021 UTC Settlement Period Consumption Data
    IF-021-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF021CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-021
    IF-021-CustomBlock:
      type: object
      properties:
        B044:
          $ref: '#/components/schemas/B044'
        B067:
          $ref: '#/components/schemas/B067'
        B900List:
          type: array
          items:
            $ref: '#/components/schemas/B900'
      description: IF021 Custom data block
    IF-022-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-022-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-022-CustomBlock'
      description: IF-022 Load Shape Period Data
    IF-022-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF022CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
      description: MHHS Common Block for IF-022
    IF-022-CustomBlock:
      type: object
      properties:
        B903List:
          type: array
          description: Load shape data (periods)
          items:
            $ref: '#/components/schemas/B903'
      description: IF022 Custom data block
    B903:
      type: object
      properties:
        settlementDay:
          $ref: '#/components/schemas/B046'
        LSGSettlementPeriods:
          type: array
          items:
            $ref: '#/components/schemas/B904'
      description: Load shaping  SP
    B904:
      type: object
      properties:
        LSGroup:
          $ref: '#/components/schemas/B051'
        LSGroupSettlementPeriods:
          type: array
          items:
            $ref: '#/components/schemas/B052'
      description: Load shaping child record SP
    B051:
      required:
      - GSPGroupID
      - connectionTypeIndicator
      - domesticPremiseIndicator
      - marketSegmentIndicator
      - measurementQuantityID
      type: object
      properties:
        loadShapeGSPGroupID:
          $ref: '#/components/schemas/DI-039-Load-Shape-GSP-Group-ID'
        connectionTypeIndicator:
          $ref: '#/components/schemas/DI-015-Connection-Type-Indicator'
        marketSegmentIndicator:
          $ref: '#/components/schemas/DI-050-Market-Segment-Indicator'
        loadShapeDomesticPremiseIndicator:
          $ref: '#/components/schemas/DI-031-Load-Shape-Domestic-Premise-Indicator'
        measurementQuantityID:
          $ref: '#/components/schemas/DI-052-Measurement-Quantity-ID'
      description: LS Criteria / Grouping
    DI-039-Load-Shape-GSP-Group-ID:
      maxLength: 2
      minLength: 2
      type: string
      description: The GSP Group ID assoicated with the Load Shape
      nullable: true
      example: _K
      enum:
      - _A
      - _B
      - _C
      - _D
      - _E
      - _F
      - _G
      - _H
      - _J
      - _K
      - _L
      - _M
      - _N
      - _P
      - null
    DI-031-Load-Shape-Domestic-Premise-Indicator:
      type: boolean
      description: The Domestic Premise Indicator associated with the Load Shape
      nullable: true
      example: true
    B052:
      required:
      - SettlementPeriodEffectiveToDateTime
      - defaultLoadShapeFlag
      - loadShapePeriodValue
      type: object
      properties:
        SettlementPeriodEffectiveToDateTime:
          $ref: '#/components/schemas/DI-082-Settlement-Period-Effective-To-DateTime'
        loadShapePeriodValue:
          $ref: '#/components/schemas/DI-102-Load-Shape-Period-Value'
        defaultLoadShapeFlag:
          $ref: '#/components/schemas/DI-154-Default-Load-Shape-Flag'
      description: LS SP Info
    DI-102-Load-Shape-Period-Value:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{3})?$"
      type: string
      description: "kWh Consumption (9,3) format"
      example: "123456789.123"
    IF-023-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-023-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-023-CustomBlock'
      description: IF-023 Load Shape Total Data
    IF-023-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF023CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
      description: MHHS Common Block for IF-023
    IF-023-CustomBlock:
      type: object
      properties:
        B912List:
          type: array
          description: Load shape data (totals)
          items:
            $ref: '#/components/schemas/B912'
      description: IF023 Custom data block
    B912:
      type: object
      properties:
        settlementDay:
          $ref: '#/components/schemas/B046'
        LSGTotals:
          type: array
          items:
            $ref: '#/components/schemas/B913'
      description: Load shaping Totals
    B913:
      type: object
      properties:
        LSGroup:
          $ref: '#/components/schemas/B051'
        LSAnnualConsumption:
          $ref: '#/components/schemas/B054'
        LSTTotals:
          type: array
          items:
            $ref: '#/components/schemas/B053'
      description: Load shaping child record Totals
    B054:
      required:
      - annualLoadShapeTotal
      type: object
      properties:
        annualLoadShapeTotal:
          $ref: '#/components/schemas/DI-040-Annual-Load-Shape-Total'
      description: LS Annual Consumption
    DI-040-Annual-Load-Shape-Total:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{3})?$"
      type: string
      description: "kWh Consumption (9,3) format"
      example: "123456789.123"
    B053:
      required:
      - loadShape7DayRollingOffPeakTotal
      - loadShape7DayRollingPeakTotal
      - loadShape7DayRollingTotal
      - loadShapeDayOffPeakTotal
      - loadShapeDayPeakTotal
      - loadShapeDayTotal
      type: object
      properties:
        loadShapeDayTotal:
          $ref: '#/components/schemas/DI-046-Load-Shape-Day-Total'
        loadShapeDayPeakTotal:
          $ref: '#/components/schemas/DI-045-Load-Shape-Day-Peak-Total'
        loadShapeDayOffPeakTotal:
          $ref: '#/components/schemas/DI-044-Load-Shape-Day-Off-Peak-Total'
        loadShape7DayRollingTotal:
          $ref: '#/components/schemas/DI-043-Load-Shape-7-Day-Rolling-Total'
        loadShape7DayRollingPeakTotal:
          $ref: '#/components/schemas/DI-042-Load-Shape-7-Day-Rolling-Peak-Total'
        loadShape7DayRollingOffPeakTotal:
          $ref: '#/components/schemas/DI-041-Load-Shape-7-Day-Rolling-Off-Peak-Total'
      description: LS Total Info
    DI-046-Load-Shape-Day-Total:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{3})?$"
      type: string
      description: "kWh Consumption (9,3) format"
      example: "123456789.123"
    DI-045-Load-Shape-Day-Peak-Total:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{3})?$"
      type: string
      description: "kWh Consumption (9,3) format"
      nullable: true
      example: "123456789.123"
    DI-044-Load-Shape-Day-Off-Peak-Total:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{3})?$"
      type: string
      description: "kWh Consumption (9,3) format"
      nullable: true
      example: "123456789.123"
    DI-043-Load-Shape-7-Day-Rolling-Total:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{3})?$"
      type: string
      description: "kWh Consumption (9,3) format"
      example: "123456789.123"
    DI-042-Load-Shape-7-Day-Rolling-Peak-Total:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{3})?$"
      type: string
      description: "kWh Consumption (9,3) format"
      nullable: true
      example: "123456789.123"
    DI-041-Load-Shape-7-Day-Rolling-Off-Peak-Total:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{3})?$"
      type: string
      description: "kWh Consumption (9,3) format"
      nullable: true
      example: "123456789.123"
    IF-024-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-024-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-024-CustomBlock'
      description: IF-024 Supplier Advisory Notification to Data Service
    IF-024-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF024CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-024
    IF-024-CustomBlock:
      type: object
      properties:
        B057:
          $ref: '#/components/schemas/B057'
        B069:
          $ref: '#/components/schemas/B069'
        B058:
          $ref: '#/components/schemas/B058'
      description: IF024 Custom data block
    B057:
      required:
      - additionalInformation
      - supplierNotificationEffectiveFromDate
      - supplierNotificationExpiryDate
      type: object
      properties:
        supplierNotificationEffectiveFromDate:
          $ref: '#/components/schemas/DI-100-Supplier-Notification-Effective-From-Date'
        supplierNotificationExpiryDate:
          $ref: '#/components/schemas/DI-098-Supplier-Notification-Expiry-Date'
        additionalInformation:
          $ref: '#/components/schemas/DI-120-Additional-Information'
      description: Supplier Notifcation Info
    DI-100-Supplier-Notification-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-098-Supplier-Notification-Expiry-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      nullable: true
      example: 2022-03-21T19:05:00+00:00
    B069:
      required:
      - meterID
      type: object
      properties:
        meterID:
          $ref: '#/components/schemas/DI-056-Meter-ID'
      description: Supplier Advisory Notification Meter ID ( Mandatory for SN-RemoteEnabled and SN-RemoteDisabled)
    B058:
      required:
      - supplierNominatedAnnualConsumption
      type: object
      properties:
        supplierNominatedAnnualConsumption:
          $ref: '#/components/schemas/DI-152-Supplier-Nominated-Annual-Consumption'
      description: Supplier SNAC
    DI-152-Supplier-Nominated-Annual-Consumption:
      maxLength: 13
      type: string
      description: "Supplier Nominated Annual Consumption Value, to be used as required by Data Service in preference to the ECS calculated Annual Consumption"
      example: "123456789.123"
    IF-025-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-025-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-025-CustomBlock'
      description: IF-025 Supplier Advisory Notification to Data Service
    IF-025-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF025CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-025
    IF-025-CustomBlock:
      type: object
      properties:
        B013:
          $ref: '#/components/schemas/B013'
        B068:
          $ref: '#/components/schemas/B068'
        B030:
          $ref: '#/components/schemas/B030'
        B031:
          $ref: '#/components/schemas/B031'
        B032:
          $ref: '#/components/schemas/B032'
      description: IF025 Custom data block
    B068:
      required:
      - consentGranularity
      - consentGranularityEffectiveFromDate
      type: object
      properties:
        consentGranularity:
          $ref: '#/components/schemas/DI-017-Consent-Granularity'
        consentGranularityEffectiveFromDate:
          $ref: '#/components/schemas/DI-018-Consent-Granularity-Effective-From-Date'
      description: MPAN Consent Info
    DI-017-Consent-Granularity:
      maxLength: 1
      type: string
      description: Describes the granularity of energy settlement data that a customer has deemed to have consented to.
      example: H
      enum:
      - H
      - D
      - M
    DI-018-Consent-Granularity-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    IF-026-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-026-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-026-CustomBlock'
      description: IF-026 Notification of Registration Supplier Data Item Changes
    IF-026-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF026CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
        R0:
          $ref: '#/components/schemas/R0'
      description: MHHS Common Block for IF-026
    IF-026-CustomBlock:
      type: object
      properties:
        B013:
          $ref: '#/components/schemas/B013'
        B068:
          $ref: '#/components/schemas/B068'
        B030:
          $ref: '#/components/schemas/B030'
        B031:
          $ref: '#/components/schemas/B031'
        B032:
          $ref: '#/components/schemas/B032'
      description: IF026 Custom data block
    IF-027-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-027-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-027-CustomBlock'
      description: IF-027 Supplier Consumption Amendment Request
    IF-027-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF027CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-027
    IF-027-CustomBlock:
      type: object
      properties:
        B902List:
          type: array
          description: MQID (B045) Supplier Consumption Ammendment Requests
          items:
            $ref: '#/components/schemas/B902'
      description: IF027 Custom data block
    B902:
      type: object
      properties:
        MQID:
          $ref: '#/components/schemas/B045'
        supplierConsumptionAmendmentRequests:
          type: array
          items:
            $ref: '#/components/schemas/B073'
      description: MQID (B045) Supplier Consumption Amendment Requests  (B073)
    B073:
      required:
      - consumptionAmendmentPeriodEndDate
      - consumptionAmendmentPeriodStartDate
      - consumptionAmendmentSupplierReference
      - grossRevisedConsumption
      - supplierConsumptionAmendmentReasonCode
      type: object
      properties:
        consumptionAmendmentSupplierReference:
          $ref: '#/components/schemas/DI-162-Consumption-Amendment-Supplier-Reference'
        consumptionAmendmentPeriodStartDate:
          $ref: '#/components/schemas/DI-163-Consumption-Amendment-Period-Start-Date'
        consumptionAmendmentPeriodEndDate:
          $ref: '#/components/schemas/DI-164-Consumption-Amendment-Period-End-Date'
        grossRevisedConsumption:
          $ref: '#/components/schemas/DI-165-Gross-Revised-Consumption'
        supplierConsumptionAmendmentReasonCode:
          $ref: '#/components/schemas/DI-166-Supplier-Consumption-Amendment-Reason-Code'
      description: Supplier Consumption Amendment Request
    DI-162-Consumption-Amendment-Supplier-Reference:
      maxLength: 50
      type: string
      description: Supplier's own internal reference for the Consumption Amendment
      nullable: true
      example: SUP-REF-99
    DI-163-Consumption-Amendment-Period-Start-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-164-Consumption-Amendment-Period-End-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-165-Gross-Revised-Consumption:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{3})?$"
      type: string
      description: "kWh Consumption (9,3) format"
      example: "123456789.123"
    IF-028-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-028-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-028-CustomBlock'
      description: IF-028 Supplier Consumption Ammendment Request Response
    IF-028-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF028CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
        R0:
          $ref: '#/components/schemas/R0'
      description: MHHS Common Block for IF-028
    IF-028-CustomBlock:
      type: object
      properties:
        B902List:
          type: array
          description: MQID (B045) Supplier Consumption Ammendment Requests
          items:
            $ref: '#/components/schemas/B902'
      description: IF028 Custom data block
    IF-031-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-031-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-031-CustomBlock'
      description: IF-031 Supplier Service Provider Appointment Request
    IF-031-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF031CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-031
    IF-031-CustomBlock:
      type: object
      properties:
        B013:
          $ref: '#/components/schemas/B013'
        B070:
          $ref: '#/components/schemas/B070'
        B071:
          $ref: '#/components/schemas/B071'
      description: IF031 Custom data block
    B070:
      required:
      - appointmentScenario
      - contractReferenceMeteringService
      - proposedMeteringServiceDIPEffectiveFromDate
      - proposedMeteringServiceDIPID
      - proposedMeteringServiceMPID
      type: object
      properties:
        proposedMeteringServiceDIPID:
          $ref: '#/components/schemas/DI-828-Proposed-Metering-Service-DIP-ID'
        proposedMeteringServiceMPID:
          $ref: '#/components/schemas/DI-213-Proposed-Metering-Service-MPID'
        proposedMeteringServiceDIPEffectiveFromDate:
          $ref: '#/components/schemas/DI-830-Proposed-Metering-Service-DIP-Effective-From-Date'
        contractReferenceMeteringService:
          $ref: '#/components/schemas/DI-019-Contract-Reference-Metering-Service'
        appointmentScenario:
          $ref: '#/components/schemas/DI-800-Appointment-Scenario'
      description: Proposed MeteringService
    DI-828-Proposed-Metering-Service-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    DI-213-Proposed-Metering-Service-MPID:
      maximum: 4
      minimum: 4
      type: string
      description: Legacy MPID
      example: EMEB
    DI-830-Proposed-Metering-Service-DIP-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-019-Contract-Reference-Metering-Service:
      maxLength: 10
      type: string
      description: The unique reference of the contractual agreement between a supplier and the data service.
      nullable: true
      example: MTR-123-123
    DI-800-Appointment-Scenario:
      maxLength: 3
      type: string
      description: Code used to identify the scenario around a Service Provider Appointment.
      example: COS
      enum:
      - COS
      - CSP
      - USP
      - SEG
      - MCA
      - MCS
    B071:
      required:
      - appointmentScenario
      - contractReferenceDataService
      - proposedDataServiceDIPEffectiveFromDate
      - proposedDataServiceDIPID
      - proposedDataServiceMPID
      - supplierNominatedMDRDIPID
      - supplierNominatedMDREffectiveFromDate
      - supplierNominatedMDRMPID
      - supplierProposedConsentGranularity
      - supplierProposedDomesticIndicator
      - traditionalFallBackReadFrequency
      type: object
      properties:
        proposedDataServiceDIPID:
          $ref: '#/components/schemas/DI-831-Proposed-Data-Service-DIP-ID'
        proposedDataServiceMPID:
          $ref: '#/components/schemas/DI-214-Proposed-Data-Service-MPID'
        proposedDataServiceDIPEffectiveFromDate:
          $ref: '#/components/schemas/DI-833-Proposed-Data-Service-DIP-Effective-From-Date'
        contractReferenceDataService:
          $ref: '#/components/schemas/DI-020-Contract-Reference-Data-Service'
        appointmentScenario:
          $ref: '#/components/schemas/DI-800-Appointment-Scenario'
        supplierNominatedMDRDIPID:
          $ref: '#/components/schemas/DI-834-Supplier-Nominated-MDR-DIP-ID'
        supplierNominatedMDRMPID:
          $ref: '#/components/schemas/DI-215-Supplier-Nominated-MDR-MPID'
        supplierNominatedMDREffectiveFromDate:
          $ref: '#/components/schemas/DI-836-Supplier-Nominated-MDR-Effective-From-Date'
        supplierProposedConsentGranularity:
          $ref: '#/components/schemas/DI-838-Supplier-Proposed-Consent-Granularity'
        supplierProposedDomesticIndicator:
          $ref: '#/components/schemas/DI-837-Supplier-Proposed-Domestic-Indicator'
        traditionalFallBackReadFrequency:
          $ref: '#/components/schemas/DI-126-Traditional-Fall-Back-Read-Frequency'
      description: Proposed Data Service
    DI-831-Proposed-Data-Service-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    DI-214-Proposed-Data-Service-MPID:
      maximum: 4
      minimum: 4
      type: string
      description: Legacy MPID
      example: EMEB
    DI-833-Proposed-Data-Service-DIP-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-020-Contract-Reference-Data-Service:
      maxLength: 10
      type: string
      description: The unique reference of the contractual agreement between a supplier and the metering service.
      nullable: true
      example: SDS-123-123
    DI-834-Supplier-Nominated-MDR-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      nullable: true
      example: "1009012345"
    DI-215-Supplier-Nominated-MDR-MPID:
      maximum: 4
      minimum: 4
      type: string
      description: Legacy MPID
      nullable: true
      example: EMEB
    DI-836-Supplier-Nominated-MDR-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      nullable: true
      example: 2022-03-21T19:05:00+00:00
    DI-838-Supplier-Proposed-Consent-Granularity:
      maxLength: 1
      type: string
      description: Supplier Proposed Domestic Indicator
      example: H
      enum:
      - H
      - D
      - M
    DI-837-Supplier-Proposed-Domestic-Indicator:
      type: boolean
      description: Supplier Proposed Domestic Indicator
      example: false
    DI-126-Traditional-Fall-Back-Read-Frequency:
      maxLength: 1
      type: string
      description: Supplier requested Traditional / Fall Back Meter Reading Frequency
      nullable: true
      example: Q
      enum:
      - W
      - F
      - M
      - Q
      - S
      - A
      - null
    IF-032-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-032-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-032-CustomBlock'
      description: IF-032 Supplier Service Provider Appointment Request Response
    IF-032-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF032CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
        R0:
          $ref: '#/components/schemas/R0'
      description: MHHS Common Block for IF-032
    IF-032-CustomBlock:
      type: object
      properties:
        B013:
          $ref: '#/components/schemas/B013'
        B070:
          $ref: '#/components/schemas/B070'
        B071:
          $ref: '#/components/schemas/B071'
      description: IF032 Custom data block
    IF-033-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-033-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-033-CustomBlock'
      description: IF-033 Registration Service Request for Service Appointment
    IF-033-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF033CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-033
    IF-033-CustomBlock:
      type: object
      properties:
        B012:
          $ref: '#/components/schemas/B012'
        B013:
          $ref: '#/components/schemas/B013'
        B070:
          $ref: '#/components/schemas/B070'
        B071:
          $ref: '#/components/schemas/B071'
        B072:
          $ref: '#/components/schemas/B072'
        B022:
          $ref: '#/components/schemas/B022'
        B023:
          $ref: '#/components/schemas/B023'
        B024:
          $ref: '#/components/schemas/B024'
        B025:
          $ref: '#/components/schemas/B025'
        B026:
          $ref: '#/components/schemas/B026'
        B029:
          $ref: '#/components/schemas/B029'
        B031:
          $ref: '#/components/schemas/B031'
        B032:
          $ref: '#/components/schemas/B032'
        B905List:
          type: array
          items:
            $ref: '#/components/schemas/B905'
        B907List:
          type: array
          items:
            $ref: '#/components/schemas/B907'
        B908List:
          type: array
          items:
            $ref: '#/components/schemas/B908'
      description: IF033 Custom data block
    B012:
      required:
      - serviceProviderAppointmentRequestingSupplierDIPID
      - serviceProviderAppointmentRequestingSupplierMPID
      type: object
      properties:
        serviceProviderAppointmentRequestingSupplierDIPID:
          $ref: '#/components/schemas/DI-847-Service-Provider-Appointment-Requesting-Supplier-DIP-ID'
        serviceProviderAppointmentRequestingSupplierMPID:
          $ref: '#/components/schemas/DI-206-Service-Provider-Appointment-Requesting-Supplier-MPID'
      description: Service Provider Appointment Requesting Supplier
    DI-847-Service-Provider-Appointment-Requesting-Supplier-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    DI-206-Service-Provider-Appointment-Requesting-Supplier-MPID:
      maximum: 4
      minimum: 4
      type: string
      description: Legacy MPID
      example: EMEB
    B072:
      required:
      - incumbentMeteringServiceDIPID
      - incumbentMeteringServiceMPID
      type: object
      properties:
        incumbentMeteringServiceDIPID:
          $ref: '#/components/schemas/DI-807-Incumbent-Metering-Service-DIP-ID'
        incumbentMeteringServiceMPID:
          $ref: '#/components/schemas/DI-217-Incumbent-Metering-Service-MPID'
      description: Incumbent MeteringService
    DI-807-Incumbent-Metering-Service-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    DI-217-Incumbent-Metering-Service-MPID:
      maximum: 4
      minimum: 4
      type: string
      description: Legacy MPID
      example: EMEB
    IF-034-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-034-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-034-CustomBlock'
      description: IF-034 Supplier Service Provider Appointment Request Response
    IF-034-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF034CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-034
    IF-034-CustomBlock:
      type: object
      properties:
        B007:
          $ref: '#/components/schemas/B007'
        B012:
          $ref: '#/components/schemas/B012'
        B013:
          $ref: '#/components/schemas/B013'
        B070:
          $ref: '#/components/schemas/B070'
        B071:
          $ref: '#/components/schemas/B071'
        B018:
          $ref: '#/components/schemas/B018'
      description: IF034 Custom data block
    B007:
      required:
      - proposedAppointmentResponseCode
      - responseCode
      type: object
      properties:
        responseCode:
          $ref: '#/components/schemas/DI-979-Response-Code'
        proposedAppointmentResponseCode:
          $ref: '#/components/schemas/DI-143-Proposed-Appointment-Response-Code'
      description: New SP Outcome
    DI-143-Proposed-Appointment-Response-Code:
      maxLength: 200
      type: string
      description: A code which defines the reason(s) why an agent appointment has been rejected.
      nullable: true
      example: REJ999 - This a rejection message
    B018:
      required:
      - SDSNominatedMDRDIPID
      - SDSNominatedMDRMPID
      - SDSNominatedMDRRequestedEffectiveFromDate
      type: object
      properties:
        SDSNominatedMDRDIPID:
          $ref: '#/components/schemas/DI-839-SDS-Nominated-MDR-DIP-ID'
        SDSNominatedMDRMPID:
          $ref: '#/components/schemas/DI-216-SDS-Nominated-MDR-MPID'
        SDSNominatedMDRRequestedEffectiveFromDate:
          $ref: '#/components/schemas/DI-841-SDS-Nominated-MDR-Requested-Effective-From-Date'
      description: SDS Nominated MDR
    DI-839-SDS-Nominated-MDR-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    DI-216-SDS-Nominated-MDR-MPID:
      maximum: 4
      minimum: 4
      type: string
      description: Legacy MPID
      example: EMEB
    DI-841-SDS-Nominated-MDR-Requested-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    IF-035-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-035-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-035-CustomBlock'
      description: IF-035 Supplier Service Provider Appointment Request Response
    IF-035-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF035CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-035
    IF-035-CustomBlock:
      required:
      - B066
      type: object
      properties:
        B007:
          $ref: '#/components/schemas/B007'
        B012:
          $ref: '#/components/schemas/B012'
        B013:
          $ref: '#/components/schemas/B013'
        B070:
          $ref: '#/components/schemas/B070'
        B071:
          $ref: '#/components/schemas/B071'
        B019:
          $ref: '#/components/schemas/B019'
        B066:
          $ref: '#/components/schemas/B066'
        B092:
          $ref: '#/components/schemas/B092'
      description: IF035 Custom data block
    B019:
      required:
      - assignedMDRDIPID
      - assignedMDREffectiveFromDate
      - assignedMDRMPID
      type: object
      properties:
        assignedMDRDIPID:
          $ref: '#/components/schemas/DI-842-Assigned-MDR-DIP-ID'
        assignedMDRMPID:
          $ref: '#/components/schemas/DI-209-Assigned-MDR-MPID'
        assignedMDREffectiveFromDate:
          $ref: '#/components/schemas/DI-844-Assigned-MDR-Effective-From-Date'
      description: Assigned MDR
    DI-842-Assigned-MDR-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    DI-209-Assigned-MDR-MPID:
      maximum: 4
      minimum: 4
      type: string
      description: Legacy MPID
      example: EMEB
    DI-844-Assigned-MDR-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    B066:
      required:
      - assignedMDRDIPID
      - assignedMDREffectiveFromDate
      - assignedMDRMPID
      - responseCode
      - responseMessage
      type: object
      properties:
        assignedMDRDIPID:
          $ref: '#/components/schemas/DI-842-Assigned-MDR-DIP-ID'
        assignedMDRMPID:
          $ref: '#/components/schemas/DI-209-Assigned-MDR-MPID'
        assignedMDREffectiveFromDate:
          $ref: '#/components/schemas/DI-844-Assigned-MDR-Effective-From-Date'
        responseCode:
          $ref: '#/components/schemas/DI-979-Response-Code'
        responseMessages:
          $ref: '#/components/schemas/DI-980-Status-Error-Messages'
      description: SDS MDR Outcome
    B092:
      required:
      - assignedMDRDIPID
      - assignedMDREffectiveFromDate
      - assignedMDRMPID
      - responseCode
      - responseMessage
      type: object
      properties:
        assignedMDRDIPID:
          $ref: '#/components/schemas/DI-842-Assigned-MDR-DIP-ID'
        assignedMDRMPID:
          $ref: '#/components/schemas/DI-209-Assigned-MDR-MPID'
        assignedMDREffectiveFromDate:
          $ref: '#/components/schemas/DI-844-Assigned-MDR-Effective-From-Date'
        responseCode:
          $ref: '#/components/schemas/DI-979-Response-Code'
        responseMessage:
          $ref: '#/components/schemas/DI-980-Status-Error-Messages'
      description: SDS MDR Outcome
    IF-036-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-036-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-036-CustomBlock'
      description: IF-036 Service Provider Notification of Appointment
    IF-036-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF036CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-036
    IF-036-CustomBlock:
      type: object
      properties:
        B012:
          $ref: '#/components/schemas/B012'
        B013:
          $ref: '#/components/schemas/B013'
        B014:
          $ref: '#/components/schemas/B014'
        B015:
          $ref: '#/components/schemas/B015'
        B019:
          $ref: '#/components/schemas/B019'
        B005:
          $ref: '#/components/schemas/B005'
        B016:
          $ref: '#/components/schemas/B016'
        B017:
          $ref: '#/components/schemas/B017'
        B022:
          $ref: '#/components/schemas/B022'
        B023:
          $ref: '#/components/schemas/B023'
        B024:
          $ref: '#/components/schemas/B024'
        B025:
          $ref: '#/components/schemas/B025'
        B026:
          $ref: '#/components/schemas/B026'
        B027:
          $ref: '#/components/schemas/B027'
        B028:
          $ref: '#/components/schemas/B028'
        B068:
          $ref: '#/components/schemas/B068'
        B029:
          $ref: '#/components/schemas/B029'
        B030:
          $ref: '#/components/schemas/B030'
        B031:
          $ref: '#/components/schemas/B031'
        B032:
          $ref: '#/components/schemas/B032'
        B905List:
          type: array
          items:
            $ref: '#/components/schemas/B905'
        B035List:
          type: array
          items:
            $ref: '#/components/schemas/B035'
        B037List:
          type: array
          items:
            $ref: '#/components/schemas/B037'
      description: IF036 Custom data block
    B014:
      required:
      - appointmentScenario
      - contractReferenceMeteringService
      - incomingMeteringServiceDIPEffectiveFromDate
      - incomingMeteringServiceDIPID
      type: object
      properties:
        incomingMeteringServiceDIPID:
          $ref: '#/components/schemas/DI-822-Incoming-Metering-Service-DIP-ID'
        incomingMeteringServiceEffectiveFromDate:
          $ref: '#/components/schemas/DI-824-Incoming-Metering-Service-Effective-From-Date'
        incomingMeteringServiceMPID:
          $ref: '#/components/schemas/DI-204-Incoming-Metering-Service-MPID'
        contractReferenceMeteringService:
          $ref: '#/components/schemas/DI-019-Contract-Reference-Metering-Service'
        appointmentScenario:
          $ref: '#/components/schemas/DI-800-Appointment-Scenario'
      description: Metering Service Active
    DI-822-Incoming-Metering-Service-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    DI-824-Incoming-Metering-Service-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-204-Incoming-Metering-Service-MPID:
      maximum: 4
      minimum: 4
      type: string
      description: Legacy MPID
      example: EMEB
    B015:
      required:
      - appointmentScenario
      - contractReferenceDataService
      - incomingDataServiceDIPID
      - incomingDataServiceEffectiveFromDate
      - traditionalFallBackReadFrequency
      type: object
      properties:
        incomingDataServiceMPID:
          $ref: '#/components/schemas/DI-205-Incoming-Data-Service-MPID'
        incomingDataServiceDIPID:
          $ref: '#/components/schemas/DI-825-Incoming-Data-Service-DIP-ID'
        incomingDataServiceEffectiveFromDate:
          $ref: '#/components/schemas/DI-827-Incoming-Data-Service-Effective-From-Date'
        contractReferenceDataService:
          $ref: '#/components/schemas/DI-020-Contract-Reference-Data-Service'
        appointmentScenario:
          $ref: '#/components/schemas/DI-800-Appointment-Scenario'
        traditionalFallBackReadFrequency:
          $ref: '#/components/schemas/DI-126-Traditional-Fall-Back-Read-Frequency'
      description: DataService Incoming (Active)
    DI-205-Incoming-Data-Service-MPID:
      maximum: 4
      minimum: 4
      type: string
      description: Legacy MPID
      example: EMEB
    DI-825-Incoming-Data-Service-DIP-ID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    DI-827-Incoming-Data-Service-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    B016:
      required:
      - incomingMeteringServiceDIPID
      - incomingMeteringServiceEffectiveFromDate
      - incomingMeteringServiceMPID
      type: object
      properties:
        incomingMeteringServiceDIPID:
          $ref: '#/components/schemas/DI-822-Incoming-Metering-Service-DIP-ID'
        incomingMeteringServiceMPID:
          $ref: '#/components/schemas/DI-204-Incoming-Metering-Service-MPID'
        incomingMeteringServiceEffectiveFromDate:
          $ref: '#/components/schemas/DI-824-Incoming-Metering-Service-Effective-From-Date'
      description: MeteringService Partner Service
    B017:
      required:
      - incomingDataServiceDIPID
      - incomingDataServiceEffectiveFromDate
      - incomingDataServiceMPID
      type: object
      properties:
        incomingDataServiceDIPID:
          $ref: '#/components/schemas/DI-825-Incoming-Data-Service-DIP-ID'
        incomingDataServiceMPID:
          $ref: '#/components/schemas/DI-205-Incoming-Data-Service-MPID'
        incomingDataServiceEffectiveFromDate:
          $ref: '#/components/schemas/DI-827-Incoming-Data-Service-Effective-From-Date'
      description: Data Service Partner Service
    IF-037-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-037-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-037-CustomBlock'
      description: IF-037 Service Provider Notification of Appointment
    IF-037-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF037CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-037
    IF-037-CustomBlock:
      type: object
      properties:
        B013:
          $ref: '#/components/schemas/B013'
        B008:
          $ref: '#/components/schemas/B008'
        B009:
          $ref: '#/components/schemas/B009'
        B010:
          $ref: '#/components/schemas/B010'
        B011:
          $ref: '#/components/schemas/B011'
      description: IF037 Custom data block
    B010:
      required:
      - incomingMeteringServiceDIPID
      - incomingMeteringServiceEffectiveFromDate
      - incomingMeteringServiceMPID
      type: object
      properties:
        incomingMeteringServiceDIPID:
          $ref: '#/components/schemas/DI-822-Incoming-Metering-Service-DIP-ID'
        incomingMeteringServiceMPID:
          $ref: '#/components/schemas/DI-204-Incoming-Metering-Service-MPID'
        incomingMeteringServiceEffectiveFromDate:
          $ref: '#/components/schemas/DI-824-Incoming-Metering-Service-Effective-From-Date'
      description: Metering Service Incoming Service Details
    B011:
      required:
      - incomingDataServiceDIPID
      - incomingDataServiceEffectiveFromDate
      - incomingDataServiceMPID
      type: object
      properties:
        incomingDataServiceDIPID:
          $ref: '#/components/schemas/DI-825-Incoming-Data-Service-DIP-ID'
        incomingDataServiceMPID:
          $ref: '#/components/schemas/DI-205-Incoming-Data-Service-MPID'
        incomingDataServiceEffectiveFromDate:
          $ref: '#/components/schemas/DI-827-Incoming-Data-Service-Effective-From-Date'
      description: DataService Incoming Service Details
    IF-038-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-038-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-038-CustomBlock'
      description: IF-038 Customer Direct Contract Advisory
    IF-038-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF038CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-038
    IF-038-CustomBlock:
      type: object
      properties:
        B020:
          $ref: '#/components/schemas/B020'
        B021:
          $ref: '#/components/schemas/B021'
      description: IF038 Custom data block
    B020:
      required:
      - customerDirectContractMeteringServiceDIPID
      - customerDirectContractMeteringServiceEffectiveToDate
      type: object
      properties:
        customerDirectContractMeteringServiceDIPID:
          $ref: '#/components/schemas/DI-842-Assigned-MDR-DIP-ID'
        customerDirectContractMeteringServiceEffectiveToDate:
          $ref: '#/components/schemas/DI-145-Customer-Direct-Contract-Metering-Service-Effective-To-Date'
      description: MeteringService Cust Direct Set
    DI-145-Customer-Direct-Contract-Metering-Service-Effective-To-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    B021:
      required:
      - customerDirectContractDataServiceEffectiveDIPID
      - customerDirectContractDataServiceEffectiveToDate
      type: object
      properties:
        customerDirectContractDataServiceDIPID:
          $ref: '#/components/schemas/DI-138-Customer-Direct-Contract-Data-Service-DIP-ID'
        customerDirectContractDataServiceEffectiveToDate:
          $ref: '#/components/schemas/DI-146-Customer-Direct-Contract-Data-Service-Effective-To-Date'
      description: DataService Cust Direct Set
    DI-146-Customer-Direct-Contract-Data-Service-Effective-To-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    IF-039-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-039-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-039-CustomBlock'
      description: IF039 Customer Direct Contract Advisory Response
    IF-039-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF039CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
        R0:
          $ref: '#/components/schemas/R0'
      description: MHHS Common Block for IF-039
    IF-039-CustomBlock:
      type: object
      properties:
        B020:
          $ref: '#/components/schemas/B020'
        B021:
          $ref: '#/components/schemas/B021'
      description: IF039 Custom data block
    IF-040-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-040-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-040-CustomBlock'
      description: IF040 Notification of ECS Calculated Consumption
    IF-040-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF040CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-040
    IF-040-CustomBlock:
      type: object
      properties:
        B059:
          $ref: '#/components/schemas/B059'
      description: IF040 Custom data block
    B059:
      required:
      - annualConsumption
      - annualConsumptionEffectiveFromDate
      - annualConsumptionQualityIndicator
      type: object
      properties:
        annualConsumption:
          $ref: '#/components/schemas/DI-148-Annual-Consumption'
        annualConsumptionEffectiveFromDate:
          $ref: '#/components/schemas/DI-149-Annual-Consumption-Effective-From-Date'
        annualConsumptionQualityIndicator:
          $ref: '#/components/schemas/DI-150-Annual-Consumption-Quality-Indicator'
      description: Annual Consumption
    IF-041-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-041-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-041-CustomBlock'
      description: IF041 Smart/Advanced Readings
    IF-041-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF041CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-041
    IF-041-CustomBlock:
      type: object
      properties:
        B06465list:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/B064'
          - maxItems: 48
            type: array
            items:
              $ref: '#/components/schemas/B065'
      description: IF041 Custom data block
    B064:
      required:
      - cumulativeRegisterReading
      - cumulativeRegisterReadingDateTime
      - meterID
      - readingMethod
      - siteVisitCheckCode
      type: object
      properties:
        meterID:
          $ref: '#/components/schemas/DI-056-Meter-ID'
        cumulativeRegisterReading:
          $ref: '#/components/schemas/DI-088-Cumulative-Register-Reading'
        cumulativeRegisterReadingDateTime:
          $ref: '#/components/schemas/DI-089-Cumulative-Register-Reading-DateTime'
        readingMethod:
          $ref: '#/components/schemas/DI-094-Reading-Method'
        siteVisitCheckCode:
          $ref: '#/components/schemas/DI-096-Site-Visit-Check-Code'
      description: Cumulative Read
    DI-088-Cumulative-Register-Reading:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{3})?$"
      type: string
      description: "kWh Consumption (9,3) format"
      example: "123456789.123"
    DI-089-Cumulative-Register-Reading-DateTime:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-094-Reading-Method:
      maxLength: 1
      type: string
      description: Indicates how the meter reading was obtained
      example: A
      enum:
      - A
      - C
      - E
      - S
    B065:
      required:
      - configurableRegisterID
      - configurableRegisterReading
      - configurableRegisterReadingDate
      - meterID
      type: object
      properties:
        meterID:
          $ref: '#/components/schemas/DI-056-Meter-ID'
        configurableRegisterReadingDate:
          $ref: '#/components/schemas/DI-099-Configurable-Register-Reading-Date'
        configurableRegisterID:
          $ref: '#/components/schemas/DI-103-Configurable-Register-ID'
        configurableRegisterReading:
          $ref: '#/components/schemas/DI-104-Configurable-Register-Reading'
      description: Configurable Registers
    DI-099-Configurable-Register-Reading-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-103-Configurable-Register-ID:
      maxLength: 2
      minLength: 2
      type: string
      description: Register ID relating to a specific configurable (billing) register on a Smart Meter
      example: "1"
    DI-104-Configurable-Register-Reading:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{3})?$"
      type: string
      description: "kWh Consumption (9,3) format"
      example: "123456789.123"
    IF-043-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-043-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-043-CustomBlock'
      description: IF-043 Registration Service Notification of Change in Connection Type
    IF-043-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF043CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-043
    IF-043-CustomBlock:
      type: object
      properties:
        B023:
          $ref: '#/components/schemas/B023'
      description: IF043 Custom data block
    IF-044-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-044-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-044-CustomBlock'
      description: IF044 Registration Service Notification of Change in Market Segment
    IF-044-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF044CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-044
    IF-044-CustomBlock:
      type: object
      properties:
        B026:
          $ref: '#/components/schemas/B026'
        B023:
          $ref: '#/components/schemas/B023'
      description: IF044 Custom data block
    IF-045-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-045-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-045-CustomBlock'
      description: IF045 Registration Service Reminder Notification
    IF-045-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF045CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-045
    IF-045-CustomBlock:
      type: object
      properties:
        B060:
          $ref: '#/components/schemas/B060'
      description: IF045 Custom data block
    B060:
      required:
      - additionalInformation
      type: object
      properties:
        additionalInformation:
          $ref: '#/components/schemas/DI-120-Additional-Information'
      description: Registration Reminder Add Info
    IF-047-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-047-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-047-CustomBlock'
      description: IF047 Notification of the Publication of a Downloadable Asset
    IF-047-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF047CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-047
    IF-047-CustomBlock:
      type: object
      properties:
        P01:
          $ref: '#/components/schemas/P01'
        P02List:
          type: array
          items:
            $ref: '#/components/schemas/P02'
      description: IF047 Custom data block
    P01:
      required:
      - publicationDate
      - publicationDescription
      - publicationVersionID
      type: object
      properties:
        publicationDescription:
          $ref: '#/components/schemas/DI-960-Publication-Description'
        publicationVersionID:
          $ref: '#/components/schemas/DI-961-Publication-Version-ID'
        publicationDate:
          $ref: '#/components/schemas/DI-962-Publication-Date'
      description: Publication Info
    DI-960-Publication-Description:
      maxLength: 200
      type: string
      description: Description of Publication
      example: ISD
    DI-961-Publication-Version-ID:
      maxLength: 10
      type: string
      description: Publication Version ID / Number
      example: 1.1.1
    DI-962-Publication-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    P02:
      required:
      - additionalInformation
      - distributionDeliveryFormat
      - distributionDeliveryURI
      - distributionVariantDescription
      - distributionVariantFormat
      - distributionVariantID
      - distributionVariantName
      - distributionVariantPublicationDate
      - distributionVariantVersionID
      type: object
      properties:
        distributionVariantID:
          $ref: '#/components/schemas/DI-963-Distribution-Variant-ID'
        distributionVariantName:
          $ref: '#/components/schemas/DI-964-Distribution-Variant-Name'
        distributionVariantDescription:
          $ref: '#/components/schemas/DI-965-Distribution-Variant-Description'
        distributionVariantVersionID:
          $ref: '#/components/schemas/DI-966-Distribution-Variant-Version-ID'
        distributionVariantPublicationDate:
          $ref: '#/components/schemas/DI-967-Distribution-Variant-Publication-Date'
        distributionVariantFormat:
          $ref: '#/components/schemas/DI-968-Distribution-Variant-Format'
        distributionDeliveryFormat:
          $ref: '#/components/schemas/DI-969-Distribution-Delivery-Format'
        distributionDeliveryURI:
          $ref: '#/components/schemas/DI-970-Distribution-Delivery-URI'
        additionalInformation:
          $ref: '#/components/schemas/DI-120-Additional-Information'
      description: Distribution Variant
    DI-963-Distribution-Variant-ID:
      maxLength: 10
      type: string
      description: Unique Identifier for Distubution Varient
      example: "1"
    DI-964-Distribution-Variant-Name:
      maxLength: 50
      type: string
      description: Distribution Variant Name
      example: ISD - Supplier Selection
    DI-965-Distribution-Variant-Description:
      maxLength: 200
      type: string
      description: Distribution Variant Description
      nullable: true
      example: ISD tables that Suppliers want only
    DI-966-Distribution-Variant-Version-ID:
      maxLength: 10
      type: string
      description: Version Number of the Distibution Varient
      example: 1.1.1
    DI-967-Distribution-Variant-Publication-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-968-Distribution-Variant-Format:
      maxLength: 10
      type: string
      description: File Type of the Distibution Varient (e.g. JSON/CSV/PDF File)
      nullable: true
      example: JSON
    DI-969-Distribution-Delivery-Format:
      maxLength: 10
      type: string
      description: File Type of the Downloadable Asset (e.g. ZIP File)
      nullable: true
      example: ZIP
    DI-970-Distribution-Delivery-URI:
      maxLength: 225
      minLength: 1
      type: string
      description: URI to allow direct download of the Distribution Varient
      example: http:\\filestore.io\folder\filename.ZIP
    IF-050-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/IF-050-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/IF-050-CustomBlock'
      description: IF050 EES Exclusive Updates
    IF-050-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/IF050CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
        M0:
          $ref: '#/components/schemas/M0'
      description: MHHS Common Block for IF-050
    IF-050-CustomBlock:
      type: object
      properties:
        B001:
          $ref: '#/components/schemas/B001'
        B022:
          $ref: '#/components/schemas/B022'
        B023:
          $ref: '#/components/schemas/B023'
        B024:
          $ref: '#/components/schemas/B024'
        B025:
          $ref: '#/components/schemas/B025'
        B026:
          $ref: '#/components/schemas/B026'
        B079:
          $ref: '#/components/schemas/B079'
        B080:
          $ref: '#/components/schemas/B080'
      description: IF050 Custom data block
    B079:
      required:
      - MPStatus
      - RMPStatus
      properties:
        RMPStatus:
          $ref: '#/components/schemas/DI-130-RMP-Status'
        MPStatus:
          $ref: '#/components/schemas/DI-131-MP-Status'
      description: Meter Point Registration Statuses
    DI-130-RMP-Status:
      maxLength: 50
      type: string
      description: The MPAN RMP Status as held in the Registration Service
      enum:
      - O
      - C
      - T
    DI-131-MP-Status:
      maxLength: 50
      type: string
      description: The MPAN MP or Trading Status as held in the Registration Service
      enum:
      - "N"
      - R
      - T
      - X
    B080:
      required:
      - greenDealEffectiveFromDate
      - greenDealEffectiveToDate
      properties:
        greenDealEffectiveFromDate:
          $ref: '#/components/schemas/DI-111-Green-Deal-Effective-From-Date'
        greenDealEffectiveToDate:
          $ref: '#/components/schemas/DI-112-Green-Deal-Effective-To-Date'
      description: Green Deal Information
    DI-111-Green-Deal-Effective-From-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-112-Green-Deal-Effective-To-Date:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    REP-002-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/REP-002-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/REP-002-CustomBlock'
      description: LDSO or Supplier report for DUoS – aggregated data
    REP-002-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/REP002CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
      description: MHHS Common Block for REP002
    REP-002-CustomBlock:
      type: object
      properties:
        R027:
          $ref: '#/components/schemas/R027'
        R013:
          $ref: '#/components/schemas/R013'
        R007:
          $ref: '#/components/schemas/R007'
        R002:
          $ref: '#/components/schemas/R002'
        R009List:
          type: array
          description: array of suppliers
          items:
            $ref: '#/components/schemas/R9009'
      description: REP002 Custom data block
    R027:
      required:
      - distributorID
      type: object
      properties:
        distributorID:
          $ref: '#/components/schemas/DI-029-Distributor-ID'
      description: Distributor ID
    DI-029-Distributor-ID:
      maxLength: 4
      type: string
      description: The market-wide unique reference for the distributor who is responsible for the distribution network that a metering point is connected to.
      example: SWAL
    R013:
      required:
      - GSPGroupID
      type: object
      properties:
        GSPGroupID:
          $ref: '#/components/schemas/DI-037-GSP-Group-ID'
      description: GSP Group
    R007:
      required:
      - settlementRunExecutionDate
      type: object
      properties:
        settlementRunExecutionDate:
          $ref: '#/components/schemas/DI-159-Settlement-Run-Execution-Date'
      description: Settlement Run Execution
    R002:
      required:
      - runNumber
      - settlementCode
      - settlementDate
      type: object
      properties:
        settlementDate:
          $ref: '#/components/schemas/DI-305-Settlement-Date'
        settlementCode:
          $ref: '#/components/schemas/DI-160-Settlement-Code'
        runNumber:
          $ref: '#/components/schemas/DI-161-Run-Number'
      description: Settlement Run Info
    DI-305-Settlement-Date:
      maxLength: 10
      minLength: 10
      type: string
      description: ISO 8601 Date
      example: 2022-03-21
    R9009:
      type: object
      properties:
        R009:
          $ref: '#/components/schemas/R009'
        tarrifCharacteristics:
          type: array
          items:
            $ref: '#/components/schemas/R9010'
      description: R009 extended - Supplier + Tariff Characterisitics
    R009:
      required:
      - supplierMPID
      type: object
      properties:
        supplierMPID:
          $ref: '#/components/schemas/DI-495-Supplier-MPID'
      description: Supplier MPID
    DI-495-Supplier-MPID:
      maxLength: 4
      type: string
      description: Supplier MPID  - as defined in ISD
      example: EMEB
    R9010:
      type: object
      properties:
        R010:
          $ref: '#/components/schemas/R010'
        consumptionBySP:
          type: array
          items:
            $ref: '#/components/schemas/R011'
        dailyTotals:
          $ref: '#/components/schemas/R105'
      description: R010 - Tariff Characterisitics + child records
    R010:
      required:
      - DUoSTariffDomesticPremiseIndicator
      - DUoSTariffEnergyDirection
      - DUoSTariffID
      type: object
      properties:
        DUoSTariffID:
          $ref: '#/components/schemas/DI-345-DUoS-Tariff-ID'
        DUoSTariffEnergyDirection:
          $ref: '#/components/schemas/DI-485-DUoS-Tariff-Energy-Direction'
        DUoSTariffDomesticPremiseIndicator:
          $ref: '#/components/schemas/DI-486-DUoS-Tariff-Domestic-Premise-Indicator'
      description: Tariff Characteristics
    DI-345-DUoS-Tariff-ID:
      type: string
      description: Reference to identify the DUoS Tarriff assigned to an MPAN
    DI-485-DUoS-Tariff-Energy-Direction:
      maxLength: 1
      type: string
      description: A flag that indicates if the DUoS Tariff is for import or export.
    DI-486-DUoS-Tariff-Domestic-Premise-Indicator:
      type: boolean
      description: A flag that indicates if the DUoS Tariff is for domestic premises.
    R011:
      required:
      - settlementPeriod
      - settlementPeriodDuration
      - totalNumberDeEnergisedMPANs
      - totalNumberEnergisedMPANs
      - totalUncorrectedVolume
      type: object
      properties:
        settlementPeriod:
          $ref: '#/components/schemas/DI-496-Settlement-Period'
        settlementPeriodDuration:
          $ref: '#/components/schemas/DI-484-Settlement-Period-Duration'
        totalUncorrectedVolume:
          $ref: '#/components/schemas/DI-347-Total-Uncorrected-Volume'
        totalNumberEnergisedMPANs:
          $ref: '#/components/schemas/DI-487-Total-Number-Energised-MPANs'
        totalNumberDeEnergisedMPANs:
          $ref: '#/components/schemas/DI-488-Total-Number-De-Energised-MPANs'
      description: Consumption data by Settlement Period
    DI-496-Settlement-Period:
      maximum: 50
      minimum: 1
      type: integer
      description: "The reference number for a Settlement Period, unique within Settlement Date. Period Ids are assigned sequentially to each period in the local time day. Period 1 identifies the half hour period which ends at 00:30 local time."
    DI-484-Settlement-Period-Duration:
      multipleOf: 15
      maximum: 30
      type: integer
      description: The settlement period duration in minutes.
    DI-347-Total-Uncorrected-Volume:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    DI-487-Total-Number-Energised-MPANs:
      maxLength: 10
      type: integer
      description: The Total number of Energised MPANs by Settlement Period.
    DI-488-Total-Number-De-Energised-MPANs:
      type: number
      description: The Total number of De-Energised MPANs  by Settlement Period.
    R105:
      required:
      - dailyTotalVolumeBasedOnActualData
      - dailyTotalVolumeBasedOnEstimatedData
      type: object
      properties:
        dailyTotalVolumeBasedOnActualData:
          $ref: '#/components/schemas/DI-489-Daily-Total-Volume-Based-On-Actual-Data'
        dailyTotalVolumeBasedOnEstimatedData:
          $ref: '#/components/schemas/DI-490-Daily-Total-Volume-Based-On-Estimated-Data'
      description: Daily volumes on Actuals or Estimates
    DI-489-Daily-Total-Volume-Based-On-Actual-Data:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    DI-490-Daily-Total-Volume-Based-On-Estimated-Data:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    REP-002A-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/REP-002A-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/REP-002A-CustomBlock'
      description: Embedded Network report for DUoS – aggregated data
    REP-002A-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/REP002ACommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
      description: MHHS Common Block for REP002A
    REP-002A-CustomBlock:
      type: object
      properties:
        R027:
          $ref: '#/components/schemas/R027'
        R013:
          $ref: '#/components/schemas/R013'
        R007:
          $ref: '#/components/schemas/R007'
        R002:
          $ref: '#/components/schemas/R002'
        R006List:
          type: array
          description: array of Embedded LDSOs
          items:
            $ref: '#/components/schemas/R9006'
      description: REP002A Custom data block
    R9006:
      type: object
      properties:
        R006:
          $ref: '#/components/schemas/R006'
        tarrifCharacteristics:
          type: array
          items:
            $ref: '#/components/schemas/R9010A'
      description: R006ext - Supplier + Tariff Characterisitics
    R006:
      required:
      - embeddedLDSOID
      type: object
      properties:
        embeddedLDSOID:
          $ref: '#/components/schemas/DI-483-Embedded-LDSO-ID'
      description: Embedded LDSO ID
    DI-483-Embedded-LDSO-ID:
      maxLength: 4
      type: string
      description: The unique reference for an LDSO
    R9010A:
      type: object
      properties:
        R010:
          $ref: '#/components/schemas/R010'
        embeddedConsumptionBySP:
          type: array
          items:
            $ref: '#/components/schemas/R012'
        dailyTotals:
          $ref: '#/components/schemas/R105'
      description: R010 - Tariff Characterisitics + child records A
    R012:
      required:
      - embeddedTotalUncorrectedVolume
      - settlementPeriod
      - settlementPeriodDuration
      - totalNumberDeEnergisedMPANs
      - totalNumberEnergisedMPANs
      type: object
      properties:
        settlementPeriod:
          $ref: '#/components/schemas/DI-496-Settlement-Period'
        settlementPeriodDuration:
          $ref: '#/components/schemas/DI-484-Settlement-Period-Duration'
        embeddedTotalUncorrectedVolume:
          $ref: '#/components/schemas/DI-491-Embedded-Total-Uncorrected-Volume'
        totalNumberEnergisedMPANs:
          $ref: '#/components/schemas/DI-487-Total-Number-Energised-MPANs'
        totalNumberDeEnergisedMPANs:
          $ref: '#/components/schemas/DI-488-Total-Number-De-Energised-MPANs'
      description: Embedded Consumption data by Settlement Period
    DI-491-Embedded-Total-Uncorrected-Volume:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    REP-003-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/REP-003-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/REP-003-CustomBlock'
      description: BM Unit Allocated Demand Volumes to Suppliers
    REP-003-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/REP003CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
      description: MHHS Common Block for REP003
    REP-003-CustomBlock:
      type: object
      properties:
        R013:
          $ref: '#/components/schemas/R013'
        R007:
          $ref: '#/components/schemas/R007'
        R002:
          $ref: '#/components/schemas/R002'
        R103:
          $ref: '#/components/schemas/R103'
        R015List:
          type: array
          description: Supplier(s)
          items:
            $ref: '#/components/schemas/R9015'
        R024List:
          type: array
          description: GSP Group correction factors
          items:
            $ref: '#/components/schemas/R024'
      description: REP003 Custom data block
    R103:
      required:
      - settlementPeriodDuration
      type: object
      properties:
        settlementPeriodDuration:
          $ref: '#/components/schemas/DI-484-Settlement-Period-Duration'
      description: Settlement Period Duration
    R9015:
      type: object
      properties:
        supplier:
          $ref: '#/components/schemas/R015'
        BMUnits:
          type: array
          items:
            $ref: '#/components/schemas/R9016'
      description: R015 - extended records
    R015:
      required:
      - supplierMPID
      type: object
      properties:
        supplierMPID:
          $ref: '#/components/schemas/DI-495-Supplier-MPID'
      description: Supplier
    R9016:
      type: object
      properties:
        R016BMUnit:
          $ref: '#/components/schemas/R016'
        R017consumptionComponentClass:
          type: array
          items:
            $ref: '#/components/schemas/R9017'
        R021dailyTotal:
          $ref: '#/components/schemas/R021'
        R051DDEDetails:
          $ref: '#/components/schemas/R051'
      description: R016 - extended records
    R016:
      required:
      - BMUnitID
      - defaultBMUnitFlag
      type: object
      properties:
        BMUnitID:
          $ref: '#/components/schemas/DI-302-BM-Unit-ID'
        defaultBMUnitFlag:
          $ref: '#/components/schemas/DI-357-Default-BM-Unit-Flag'
      description: BM Unit Standing Data
    DI-302-BM-Unit-ID:
      maxLength: 11
      type: string
      description: The unique reference for a BM Unit.
      example: 2_KMEB000
    DI-357-Default-BM-Unit-Flag:
      type: boolean
      description: Denotes whether or not the BM Unit is the default for a Supplier in a GSP Group.
    R9017:
      type: object
      properties:
        R017:
          $ref: '#/components/schemas/R017'
        R019dailyTotal:
          $ref: '#/components/schemas/R019'
        correctAndUncorrectedComponents:
          type: array
          items:
            $ref: '#/components/schemas/R018'
      description: R017 - extended records
    R017:
      required:
      - GSPGroupCorrectionScalingWeight
      - connectionTypeIndicator
      - consumptionComponentClassID
      - consumptionComponentIndicator
      - marketSegmentIndicator
      type: object
      properties:
        consumptionComponentClassID:
          $ref: '#/components/schemas/DI-300-Consumption-Component-Class-ID'
        GSPGroupCorrectionScalingWeight:
          $ref: '#/components/schemas/DI-325-GSP-Group-Correction-Scaling-Weight'
        connectionTypeIndicator:
          $ref: '#/components/schemas/DI-015-Connection-Type-Indicator'
        marketSegmentIndicator:
          $ref: '#/components/schemas/DI-050-Market-Segment-Indicator'
        consumptionComponentIndicator:
          $ref: '#/components/schemas/DI-080-Consumption-Component-Indicator'
      description: Consumption Component Class HH Energy
    DI-325-GSP-Group-Correction-Scaling-Weight:
      multipleOf: 0.01
      type: number
      description: A weight which can be applied to the GSP Group Correction Factor to define to what degree the GSP Group Weight will be applied to a particular consumption component class
    R019:
      required:
      - dailyBMUnitPeriodLevelConsumption
      - dailyBMUnitPeriodLevelConsumptionLosses
      - dailyCorrectedComponent
      - dailyCorrectedComponentLosses
      type: object
      properties:
        dailyBMUnitPeriodLevelConsumption:
          $ref: '#/components/schemas/DI-363-Daily-BM-Unit-Period-Level-Consumption'
        dailyBMUnitPeriodLevelConsumptionLosses:
          $ref: '#/components/schemas/DI-364-Daily-BM-Unit-Period-Level-Consumption-Losses'
        dailyCorrectedComponent:
          $ref: '#/components/schemas/DI-365-Daily-Corrected-Component'
        dailyCorrectedComponentLosses:
          $ref: '#/components/schemas/DI-366-Daily-Corrected-Component-Losses'
      description: Daily Totals Per BM Unit by Consumption Component Class
    DI-363-Daily-BM-Unit-Period-Level-Consumption:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    DI-364-Daily-BM-Unit-Period-Level-Consumption-Losses:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    DI-365-Daily-Corrected-Component:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    DI-366-Daily-Corrected-Component-Losses:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    R018:
      required:
      - correctedComponentConsumption
      - correctedComponentLosses
      - settlementDate
      - settlementPeriod
      - uncorrectedBMUnitPeriodLevelConsumption
      - uncorrectedBMUnitPeriodLevelConsumptionLosses
      type: object
      properties:
        settlementDate:
          $ref: '#/components/schemas/DI-305-Settlement-Date'
        settlementPeriod:
          $ref: '#/components/schemas/DI-496-Settlement-Period'
        uncorrectedBMUnitPeriodLevelConsumption:
          $ref: '#/components/schemas/DI-359-Uncorrected-BM-Unit-Period-Level-Consumption'
        uncorrectedBMUnitPeriodLevelConsumptionLosses:
          $ref: '#/components/schemas/DI-360-Uncorrected-BM-Unit-Period-Level-Consumption-Losses'
        correctedComponentConsumption:
          $ref: '#/components/schemas/DI-362-Corrected-Component-Consumption'
        correctedComponentLosses:
          $ref: '#/components/schemas/DI-324-Corrected-Component-Losses'
      description: Corrected & Uncorrected Components
    DI-359-Uncorrected-BM-Unit-Period-Level-Consumption:
      pattern: "^[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      nullable: true
      example: "123456789.123456"
    DI-360-Uncorrected-BM-Unit-Period-Level-Consumption-Losses:
      pattern: "^[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      nullable: true
      example: "123456789.123456"
    DI-362-Corrected-Component-Consumption:
      pattern: "^[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      nullable: true
      example: "123456789.123456"
    DI-324-Corrected-Component-Losses:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      nullable: true
      example: "-987654321.123456"
    R021:
      required:
      - dailyBMUnitMSIDCount
      - dailyPeriodBMUnitTotalAllocatedVolume
      - dailyUncorrectedPeriodBMUnitTotalAllocatedVolume
      type: object
      properties:
        dailyUncorrectedPeriodBMUnitTotalAllocatedVolume:
          $ref: '#/components/schemas/DI-367-Daily-Uncorrected-Period-BM-Unit-Total-Allocated-Volume'
        dailyPeriodBMUnitTotalAllocatedVolume:
          $ref: '#/components/schemas/DI-368-Daily-Period-BM-Unit-Total-Allocated-Volume'
        dailyBMUnitMSIDCount:
          $ref: '#/components/schemas/DI-492-Daily-BM-Unit-MSID-Count'
      description: Daily Total (2) BM Unit HH  Energy
    DI-367-Daily-Uncorrected-Period-BM-Unit-Total-Allocated-Volume:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    DI-368-Daily-Period-BM-Unit-Total-Allocated-Volume:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    DI-492-Daily-BM-Unit-MSID-Count:
      type: integer
      description: The count of HH MPANs for a BM Unit for a Settlement Day.
    R051:
      required:
      - demandDisconnectionEventEndDate
      - demandDisconnectionEventID
      - demandDisconnectionEventStartDate
      type: object
      properties:
        demandDisconnectionEventID:
          $ref: '#/components/schemas/DI-332-Demand-Disconnection-Event-ID'
        demandDisconnectionEventStartDate:
          $ref: '#/components/schemas/DI-334-DDE-Start-Datetime'
        demandDisconnectionEventEndDate:
          $ref: '#/components/schemas/DI-335-DDE-End-Datetime'
        R022allocatedDemandDisconnectionVolumesbySP:
          type: array
          items:
            $ref: '#/components/schemas/R022'
        R023DDEdailyTotal:
          $ref: '#/components/schemas/R023'
        R106UncorrectedDemandDisconnectionEventVolumes:
          type: array
          items:
            $ref: '#/components/schemas/R106'
        R107DailyUncorrectedDisconnectionVolumes:
          $ref: '#/components/schemas/R107'
      description: Demand Disconnection Event Details
    DI-332-Demand-Disconnection-Event-ID:
      maxLength: 30
      type: string
    DI-334-DDE-Start-Datetime:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    DI-335-DDE-End-Datetime:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      example: 2022-03-21T19:05:00+00:00
    R022:
      required:
      - BMUnitAllocatedDemandDisconnectionVolume
      - BMUnitAllocatedDemandDisconnectionVolumeLosses
      - settlementPeriodID
      type: object
      properties:
        settlementPeriodID:
          $ref: '#/components/schemas/DI-307-Settlement-Period-ID'
        BMUnitAllocatedDemandDisconnectionVolume:
          $ref: '#/components/schemas/DI-341-BM-Unit-Allocated-Demand-Disconnection-Volume'
        BMUnitAllocatedDemandDisconnectionVolumeLosses:
          $ref: '#/components/schemas/DI-339-BM-Unit-Allocated-Demand-Disconnection-Volume-Losses'
      description: BM Unit Allocated Demand Disconnection Volume
    DI-307-Settlement-Period-ID:
      maximum: 50
      minimum: 1
      type: integer
      description: "The reference number for a Settlement Period, unique within Settlement Date. Period Ids are assigned sequentially to each period in the local time day. Period 1 identifies the half hour period which endst 00:30 local time."
    DI-341-BM-Unit-Allocated-Demand-Disconnection-Volume:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      nullable: true
      example: "-987654321.123456"
    DI-339-BM-Unit-Allocated-Demand-Disconnection-Volume-Losses:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      nullable: true
      example: "-987654321.123456"
    R023:
      required:
      - dailyBMUnitAllocatedDemandDisconnectionVolume
      - dailyBMUnitAllocatedDemandDisconnectionVolumeLosses
      type: object
      properties:
        dailyBMUnitAllocatedDemandDisconnectionVolume:
          $ref: '#/components/schemas/DI-369-Daily-BM-Unit-Allocated-Demand-Disconnection-Volume'
        dailyBMUnitAllocatedDemandDisconnectionVolumeLosses:
          $ref: '#/components/schemas/DI-370-Daily-BM-Unit-Allocated-Demand-Disconnection-Volume-Losses'
      description: DDE Daily Total
    DI-369-Daily-BM-Unit-Allocated-Demand-Disconnection-Volume:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    DI-370-Daily-BM-Unit-Allocated-Demand-Disconnection-Volume-Losses:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    R106:
      required:
      - BMUnitDemandDisconnectionVolume
      - BMUnitDemandDisconnectionVolumeLosses
      - consumptionComponentClassID
      - settlementPeriodID
      - supplierAdvancedDemandDisconnectionVolume
      - supplierAdvancedDemandDisconnectionVolumeLosses
      type: object
      properties:
        consumptionComponentClassID:
          $ref: '#/components/schemas/DI-300-Consumption-Component-Class-ID'
        settlementPeriodID:
          $ref: '#/components/schemas/DI-496-Settlement-Period'
        supplierAdvancedDemandDisconnectionVolume:
          $ref: '#/components/schemas/DI-336-Supplier-Advanced-Demand-Disconnection-Volume'
        supplierAdvancedDemandDisconnectionVolumeLosses:
          $ref: '#/components/schemas/DI-337-Supplier-Advanced-Demand-Disconnection-Volume-Losses'
        BMUnitDemandDisconnectionVolume:
          $ref: '#/components/schemas/DI-338-BM-Unit-Demand-Disconnection-Volume'
        BMUnitDemandDisconnectionVolumeLosses:
          $ref: '#/components/schemas/DI-339-BM-Unit-Allocated-Demand-Disconnection-Volume-Losses'
      description: Uncorrected Demand Disconnection Event Volumes by Supplier BM Unit- parent is R051
    DI-336-Supplier-Advanced-Demand-Disconnection-Volume:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    DI-337-Supplier-Advanced-Demand-Disconnection-Volume-Losses:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    DI-338-BM-Unit-Demand-Disconnection-Volume:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    R107:
      required:
      - dailyAdvancedDemandDisconnectionVolume
      - dailyAdvancedDemandDisconnectionVolumeLosses
      - dailyBMUnitDemandDisconnectionVolume
      - dailyBMUnitDemandDisconnectionVolumeLosses
      type: object
      properties:
        dailyAdvancedDemandDisconnectionVolume:
          $ref: '#/components/schemas/DI-376-Daily-Advanced-Demand-Disconnection-Volume'
        dailyAdvancedDemandDisconnectionVolumeLosses:
          $ref: '#/components/schemas/DI-377-Daily-Advanced-Demand-Disconnection-Volume-Losses'
        dailyBMUnitDemandDisconnectionVolume:
          $ref: '#/components/schemas/DI-378-Daily-BMU-Demand-Disconnection-Volume'
        dailyBMUnitDemandDisconnectionVolumeLosses:
          $ref: '#/components/schemas/DI-379-Daily-BMU-Demand-Disconnection-Volume-Losses'
      description: Daily Uncorrected Demand Disconnection Volumes
    DI-376-Daily-Advanced-Demand-Disconnection-Volume:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    DI-377-Daily-Advanced-Demand-Disconnection-Volume-Losses:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    DI-378-Daily-BMU-Demand-Disconnection-Volume:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    DI-379-Daily-BMU-Demand-Disconnection-Volume-Losses:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    R024:
      required:
      - groupCorrectionFactorExport
      - groupCorrectionFactorImport
      - settlementPeriodID
      type: object
      properties:
        settlementPeriodID:
          $ref: '#/components/schemas/DI-307-Settlement-Period-ID'
        groupCorrectionFactorImport:
          $ref: '#/components/schemas/DI-322-Group-Correction-Factor-Import'
        groupCorrectionFactorExport:
          $ref: '#/components/schemas/DI-323-Group-Correction-Factor-Export'
      description: GSP Group Correction Factors
    DI-322-Group-Correction-Factor-Import:
      multipleOf: 0.01
      maximum: 99.99
      minimum: 0
      type: number
      description: "Group Correction Factor (Number 4,2) format"
      example: 20.12
    DI-323-Group-Correction-Factor-Export:
      multipleOf: 0.01
      maximum: 99.99
      minimum: 0
      type: number
      description: "Group Correction Factor (Number 4,2) format"
      example: 20.12
    REP-004-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/REP-004-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/REP-004-CustomBlock'
      description: Supplier Deemed Take Report
    REP-004-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/REP004CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
      description: MHHS Common Block for REP004
    REP-004-CustomBlock:
      type: object
      properties:
        R013:
          $ref: '#/components/schemas/R013'
        R007:
          $ref: '#/components/schemas/R007'
        R002:
          $ref: '#/components/schemas/R002'
        R009:
          $ref: '#/components/schemas/R009'
        R026List:
          type: array
          items:
            $ref: '#/components/schemas/R026'
        R025List:
          type: array
          items:
            $ref: '#/components/schemas/R025'
      description: REP004 Custom data block
    R026:
      required:
      - settlementPeriodID
      - supplierDeemedTake
      type: object
      properties:
        settlementPeriodID:
          $ref: '#/components/schemas/DI-307-Settlement-Period-ID'
        supplierDeemedTake:
          $ref: '#/components/schemas/DI-325-GSP-Group-Correction-Scaling-Weight'
      description: Supplier Deemed Take Per Settlement Period
    R025:
      required:
      - dailySupplierDeemedTakeforSettlementDay
      type: object
      properties:
        dailySupplierDeemedTakeforSettlementDay:
          $ref: '#/components/schemas/DI-373-Daily-Supplier-Deemed-Take'
      description: Daily Supplier Deemed Take
    DI-373-Daily-Supplier-Deemed-Take:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    REP-006-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/REP-006-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/REP-006-CustomBlock'
      description: Aggregated Uncorrected volumes by CCC to Market Participants
    REP-006-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/REP006CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
      description: MHHS Common Block for REP006
    REP-006-CustomBlock:
      type: object
      properties:
        R013:
          $ref: '#/components/schemas/R013'
        R007:
          $ref: '#/components/schemas/R007'
        R002:
          $ref: '#/components/schemas/R002'
        R032List:
          type: array
          description: Array of extended BM Unit records
          items:
            $ref: '#/components/schemas/R9032'
      description: REP006 Custom data block
    R9032:
      type: object
      properties:
        R032BMUnit:
          $ref: '#/components/schemas/R032'
        R003ECSCCCDeterminationData:
          type: array
          items:
            $ref: '#/components/schemas/R9003'
      description: R032 - extended records
    R032:
      required:
      - BMUnitID
      type: object
      properties:
        BMUnitID:
          $ref: '#/components/schemas/DI-302-BM-Unit-ID'
      description: BM Unit ID
    R9003:
      type: object
      properties:
        ECSCCCDeterminationData:
          $ref: '#/components/schemas/R003'
        uncorrectedAggregatedVolumes:
          type: array
          items:
            $ref: '#/components/schemas/R033'
        dailyTotal:
          $ref: '#/components/schemas/R034'
      description: R003 - extended records
    R003:
      required:
      - connectionTypeIndicator
      - consumptionComponentClassID
      - consumptionComponentIndicator
      - domesticPremiseIndicator
      - marketSegmentIndicator
      - measurementQuantityID
      type: object
      properties:
        connectionTypeIndicator:
          $ref: '#/components/schemas/DI-015-Connection-Type-Indicator'
        measurementQuantityID:
          $ref: '#/components/schemas/DI-052-Measurement-Quantity-ID'
        marketSegmentIndicator:
          $ref: '#/components/schemas/DI-050-Market-Segment-Indicator'
        domesticPremiseIndicator:
          $ref: '#/components/schemas/DI-030-Domestic-Premise-Indicator'
        consumptionComponentClassID:
          $ref: '#/components/schemas/DI-300-Consumption-Component-Class-ID'
        consumptionComponentIndicator:
          $ref: '#/components/schemas/DI-080-Consumption-Component-Indicator'
      description: CCC Determination Data
    R033:
      required:
      - MSIDCount
      - settlementPeriodID
      - uncorrectedBMUnitPeriodLevelConsumption
      - uncorrectedBMUnitPeriodLevelConsumptionLosses
      type: object
      properties:
        settlementPeriodID:
          $ref: '#/components/schemas/DI-307-Settlement-Period-ID'
        MSIDCount:
          $ref: '#/components/schemas/DI-374-MSID-Count'
        uncorrectedBMUnitPeriodLevelConsumption:
          $ref: '#/components/schemas/DI-359-Uncorrected-BM-Unit-Period-Level-Consumption'
        uncorrectedBMUnitPeriodLevelConsumptionLosses:
          $ref: '#/components/schemas/DI-360-Uncorrected-BM-Unit-Period-Level-Consumption-Losses'
      description: Uncorrected Aggregated Volumes
    DI-374-MSID-Count:
      maximum: 10
      type: integer
      description: The count ofmetering systems by Consumption Component Class and Supplier in a GSP Group
    R034:
      required:
      - dailyBMUnitPeriodLevelConsumptionLosses
      - dailyUncorrectedBMUnitPeriodLevelConsumption
      type: object
      properties:
        dailyUncorrectedBMUnitPeriodLevelConsumption:
          $ref: '#/components/schemas/DI-375-Daily-Uncorrected-BM-Unit-Period-Level-Consumption'
        dailyBMUnitPeriodLevelConsumptionLosses:
          $ref: '#/components/schemas/DI-364-Daily-BM-Unit-Period-Level-Consumption-Losses'
      description: Daily Totals
    DI-375-Daily-Uncorrected-BM-Unit-Period-Level-Consumption:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    REP-007-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/REP-007-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/REP-007-CustomBlock'
      description: VAS Exception Report to Suppliers
    REP-007-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/REP007CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
      description: MHHS Common Block for REP007
    REP-007-CustomBlock:
      type: object
      properties:
        R002:
          $ref: '#/components/schemas/R002'
        R013List:
          type: array
          items:
            $ref: '#/components/schemas/R9013'
      description: REP007 Custom data block
    R9013:
      type: object
      properties:
        R013:
          $ref: '#/components/schemas/R013'
        R036List:
          type: array
          description: BMUs pertinent to the GSP
          items:
            $ref: '#/components/schemas/R036'
      description: R013 - extended records
    R036:
      required:
      - BMUnitID
      - detailsOfDefaultDataUsed
      type: object
      properties:
        BMUnitID:
          $ref: '#/components/schemas/DI-302-BM-Unit-ID'
        detailsOfDefaultDataUsed:
          $ref: '#/components/schemas/DI-380-Details-Of-Default-Data-Used'
      description: BMU Default Data Detail
    DI-380-Details-Of-Default-Data-Used:
      maxLength: 200
      type: string
      description: Detail of all default data used for Data Services
    REP-008-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/REP-008-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/REP-008-CustomBlock'
      description: MDS Exception Report to LDSOs
    REP-008-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/REP008CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
      description: MHHS Common Block for REP008
    REP-008-CustomBlock:
      type: object
      properties:
        R002:
          $ref: '#/components/schemas/R002'
        R013:
          $ref: '#/components/schemas/R013'
        R027:
          $ref: '#/components/schemas/R027'
        R039:
          $ref: '#/components/schemas/R039'
      description: REP008 Custom data block
    R039:
      required:
      - detailsofDefaultLLFDataUsed
      type: object
      properties:
        detailsofDefaultLLFDataUsed:
          $ref: '#/components/schemas/DI-494-Details-of-Default-LLF-Data-Used'
      description: LLF Default Data Detail
    DI-494-Details-of-Default-LLF-Data-Used:
      maxLength: 200
      type: string
      description: Detail of all default LLF data used for Data Services
    REP-009-Payload:
      type: object
      properties:
        CommonBlock:
          $ref: '#/components/schemas/REP-009-CommonBlock'
        CustomBlock:
          $ref: '#/components/schemas/REP-009-CustomBlock'
      description: EMRS Report for Suppliers
    REP-009-CommonBlock:
      required:
      - S0
      - S1
      type: object
      properties:
        S0:
          $ref: '#/components/schemas/REP009CommonBlock_S0'
        S1:
          $ref: '#/components/schemas/S1'
        A0:
          $ref: '#/components/schemas/A0'
        D0:
          $ref: '#/components/schemas/D0'
      description: MHHS Common Block for REP009
    REP-009-CustomBlock:
      type: object
      properties:
        R002:
          $ref: '#/components/schemas/R002'
        R9015a:
          $ref: '#/components/schemas/R9015a'
      description: REP009 Custom data block
    R9015a:
      type: object
      properties:
        R015:
          $ref: '#/components/schemas/R015'
        R9013aList:
          type: array
          description: GSPs for the Supplier
          items:
            $ref: '#/components/schemas/R9013a'
      description: R015 - extended records
    R9013a:
      type: object
      properties:
        R013:
          $ref: '#/components/schemas/R013'
        R068List:
          type: array
          description: Period Metering data for the GSP
          items:
            $ref: '#/components/schemas/R068'
      description: R013 - extended records
    R068:
      required:
      - MPANCore
      - measurementQuantityID
      - periodMeteringSystemMeteredData
      - settlementPeriodID
      - settlementPeriodQualityIndicator
      type: object
      properties:
        MPANCore:
          $ref: '#/components/schemas/DI-063-MPAN-Core'
        measurementQuantityID:
          $ref: '#/components/schemas/DI-052-Measurement-Quantity-ID'
        settlementPeriodID:
          $ref: '#/components/schemas/DI-307-Settlement-Period-ID'
        periodMeteringSystemMeteredData:
          $ref: '#/components/schemas/DI-432-Period-Metering-System-Metered-Data'
        settlementPeriodQualityIndicator:
          $ref: '#/components/schemas/DI-083-Settlement-Period-Quality-Indicator'
      description: Period Metering Data
    DI-432-Period-Metering-System-Metered-Data:
      multipleOf: 0.001
      maxLength: 13
      type: string
      description: The metered data for a Metering System.
    DT-006-DIPParticipantID:
      maxLength: 10
      minLength: 10
      type: string
      description: DIP Participant Id
      example: "1009012345"
    DT-009-DIPParticipantRole:
      maxLength: 5
      minLength: 3
      type: string
      description: DIP Participant Role
      example: SUP
    DT-003N-DateTime:
      maxLength: 25
      minLength: 25
      type: string
      description: ISO 8601 Date/time
      nullable: true
      example: 2022-03-21T19:05:00+00:00
    DT-004N-EventCode:
      maxLength: 50
      minLength: 1
      type: string
      description: Event Code
      nullable: true
      example: "[EventName]"
    DT-002N-MPAN:
      maxLength: 13
      type: string
      description: MPAN Core
      nullable: true
      example: "2000056535971"
    DT-995-SenderUniqueReference:
      maxLength: 200
      minLength: 1
      type: string
      description: Sender Unique Reference
      example: S-005-0123456789-SUP-20222313-12345687a1234567a
    DT-011-CorrelationID:
      maxLength: 60
      minLength: 1
      type: string
      description: Correlation Id
      example: CI-20220401-1234567890123abce123092
    DT-005N-StatusErrorMessage:
      maxLength: 200
      type: string
      description: Status/Error messages
      nullable: true
      example: MSG0101 Application 101 error message
    DT-019-HelpText:
      maxLength: 500
      minLength: 1
      type: string
      description: Help Text
      example: "Sender Unique reference must take the format S - Interface Id - Participant Id - Role Id - Date - Sequence (hex)/Participant Ref, e.g. ‘S-005-03458900823-SUP-20222313-12345687a’"
    DT-018-URL:
      maxLength: 250
      minLength: 1
      type: string
      description: URL
      example: https://<baseURL>/nav_to.do?uri=<table name>.do?sys_id=-1%26sysparm_query=<field=value>
    DT-013-EnvironmentTag:
      maxLength: 10
      minLength: 3
      type: string
      description: Environment Tag
      example: DEV
      enum:
      - PROD
      - PREPROD
      - SIT
      - UIT
      - DEV
    DT-020N-SubText:
      maxLength: 500
      minLength: 1
      type: string
      description: SubText
      nullable: true
      example: additonal text to separate messages in testing - ignore in production
    DT-018N-URL:
      maxLength: 250
      minLength: 1
      type: string
      description: URL
      nullable: true
      example: https://<baseURL>/nav_to.do?uri=<table name>.do?sys_id=-1%26sysparm_query=<field=value>
    DT-002-MPAN:
      maxLength: 13
      minLength: 13
      type: string
      description: MPAN Core
      example: "2000056535971"
    DT-027-MPID:
      maximum: 4
      minimum: 4
      type: string
      description: Legacy MPID
      example: EMEB
    DT-027N-MPID:
      maximum: 4
      minimum: 4
      type: string
      description: Legacy MPID
      nullable: true
      example: EMEB
    DT-007N-UKPostCode:
      maxLength: 10
      minLength: 6
      type: string
      description: UK Post Code
      nullable: true
      example: SW1A 2AA
    DT-001N-AddressLine:
      maxLength: 40
      minLength: 0
      type: string
      description: Address Line
      nullable: true
      example: Address Line
    DT-016-Decimal-9-3:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{3})?$"
      type: string
      description: "kWh Consumption (9,3) format"
      example: "123456789.123"
    DT-029-MeterID:
      maximum: 10
      type: string
      description: Meter ID
      example: A123456789
    DT-029N-MeterID:
      maximum: 10
      type: string
      description: Meter ID
      nullable: true
      example: A123456789
    DT-016N-Decimal-9-3:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{3})?$"
      type: string
      description: "kWh Consumption (9,3) format"
      nullable: true
      example: "123456789.123"
    DT-021-Date:
      maxLength: 10
      minLength: 10
      type: string
      description: ISO 8601 Date
      example: 2022-03-21
    DT-022-Decimal-9-6:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      example: "-987654321.123456"
    DT-023N-Positive-Decimal-9-6:
      pattern: "^[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      nullable: true
      example: "123456789.123456"
    DT-022N-Decimal-9-6:
      pattern: "^-?[0-9]\\d{8}(\\.\\d{6})?$"
      type: string
      description: "Number (9,6) format"
      nullable: true
      example: "-987654321.123456"
    DT-026-Group-Correction-Factor:
      multipleOf: 0.01
      maximum: 99.99
      minimum: 0
      type: number
      description: "Group Correction Factor (Number 4,2) format"
      example: 20.12
    IF001CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-001
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[InitialRegistration]"
          - "[ChangeOfSupplier]"
      description: Sender Header block
    IF002CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-002
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[GainMPANInfo]"
      description: Sender Header block
    IF003CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-033
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[MSDeAppRM]"
          - "[DSDeAppRM]"
          - "[MSDeAppUpdateRM]"
          - "[DSDeAppUpdateRM]"
          - "[ReverseMigNotification"
      description: Sender Header block
    IF004CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-004
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[CommsHubInfo]"
      description: Sender Header block
    IF005CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-005
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[MeterInstall]"
          - "[MeterRemoval]"
          - "[MeterExchange]"
          - "[MeterUpdate]"
          - "[MeterHistoryUpdate]"
      description: Sender Header block
    IF006CommonBlock_S0:
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-006
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[MeterInstall]"
          - "[MeterRemoval]"
          - "[MeterExchange]"
          - "[MeterUpdate]"
          - "[MeterHistoryUpdate]"
      description: Sender Header block
    IF007CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-007
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[EnergisationStatusChange]"
          - "[EnergisationStatusFailure]"
      description: Sender Header block
    IF008CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-008
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[EnergisationStatusChange]"
      description: Sender Header block
    IF009CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-009
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[MPANDisconnection]"
          - "[CSSDeRegistration]"
      description: Sender Header block
    IF013CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-013
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[ActivePowerDefaulted]"
      description: Sender Header block
    IF014CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-014
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[ActivePowerRejected]"
          - "[ConsumptionOnDeEnergisedMPAN]"
      description: Sender Header block
    IF015CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-015
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[ConsumptionReplay]"
      description: Sender Header block
    IF016CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-016
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[ConsumptionReplayResult]"
      description: Sender Header block
    IF018CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-018
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[AddressChg]"
          - "[GSPChg]"
          - "[DomPremInd]"
          - "[DUOSTariffIDChg]"
          - "[EnergyDirection]"
          - "[MUMIndicator]"
          - "[DCCEnrolment]"
      description: Sender Header block
    IF019CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-019
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[LinkedImportExportCreate]"
          - "[LinkedImportExportAdd]"
          - "[LinkedImportExportRemove]"
          - "[RelatedCreate]"
          - "[RelatedAdd]"
          - "[RelatedRemove]"
      description: Sender Header block
    IF020CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-020
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[LinkedImportExportCreate]"
          - "[LinkedImportExportAdd]"
          - "[LinkedImportExportRemove]"
          - "[RelatedCreate]"
          - "[RelatedAdd]"
          - "[RelatedRemove]"
      description: Sender Header block
    IF021CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-021
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[ActivePower]"
          - "[ReactivePower]"
      description: Sender Header block
    IF022CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-022
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[LSSPeriodData]"
      description: Sender Header block
    IF023CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-023
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[LSSTotalsData]"
      description: Sender Header block
    IF024CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-024
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[SN-Vacant]"
          - "[SN-NoComms]"
          - "[SN-RemoteEnabled]"
          - "[SN-RemoteDisabled]"
          - "[SN-SupplierAC]"
      description: Sender Header block
    IF025CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-025
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[ConsentGranularity]"
          - "[IHDInfo]"
          - "[SMSO]"
          - "[SSCandProfileClass]"
      description: Sender Header block
    IF026CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-026
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[ConsentGranularity]"
          - "[IHDInfo]"
          - "[SMSO]"
          - "[SSCandProfileClass]"
      description: Sender Header block
    IF027CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-027
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[ConsumptionAmendment]"
      description: Sender Header block
    IF028CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-028
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[ConsumptionAmendment]"
      description: Sender Header block
    IF031CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-031
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[MSApp]"
          - "[DSApp]"
      description: Sender Header block
    IF032CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-032
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[MSAppInitialResp]"
          - "[DSAppInitialResp]"
      description: Sender Header block
    IF033CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-033
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[MSAppSPRequest]"
          - "[DSAppSPRequest]"
      description: Sender Header block
    IF034CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-034
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[MSAppSPResponse]"
          - "[DSAppSPResponse]"
          - "[SDS-MDRUpdate]"
      description: Sender Header block
    IF035CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-035
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[MSAppAccepted]"
          - "[MSAppRejected]"
          - "[MSAppLapsed]"
          - "[DSAppAccepted]"
          - "[DSAppRejected]"
          - "[DSAppLapsed]"
          - "[IMS-SendMTD]"
          - "[SDS-MDROutcome]"
          - "[DCC-MDROutcome]"
      description: Sender Header block
    IF036CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-036
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[MSAppActive]"
          - "[DSAppActive]"
      description: Sender Header block
    IF037CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-037
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[MSDeApp]"
          - "[DSDeApp]"
          - "[MSDeAppUpdate]"
          - "[DSDeAppUpdate]"
      description: Sender Header block
    IF038CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-038
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[DirectContractMSAdd]"
          - "[DirectContractDSAdd]"
          - "[DirectContractMSRemove]"
          - "[DirectContractDSRemove]"
      description: Sender Header block
    IF039CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-039
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[DirectContractMSAdd]"
          - "[DirectContractDSAdd]"
          - "[DirectContractMSRemove]"
          - "[DirectContractDSRemove]"
      description: Sender Header block
    IF040CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-040
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[AnnualConsumption]"
      description: Sender Header block
    IF041CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-041
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[ReadingRemote]"
          - "[ReadingRemv]"
          - "[ReadingInstl]"
          - "[ReadingEnergisationChg]"
          - "[ReadingCOR]"
          - "[ReadingOnSite]"
          - "[ReadingCOS]"
          - "[DSEstimate]"
          - "[SupplierAgreedCOS]"
          - "[ReadingOverride]"
      description: Sender Header block
    IF043CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-043
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[ConnectionTypeChange]"
      description: Sender Header block
    IF044CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-044
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[MarketSegmentChange]"
      description: Sender Header block
    IF045CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-045
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[InvalidMarketSegment]"
          - "[ConsentGranularityInvalid]"
          - "[NoMSAppointed]"
          - "[NoDSAppointed]"
      description: Sender Header block
    IF047CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-047
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[ISD]"
      description: Sender Header block
    IF050CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        interfaceID:
          type: string
          enum:
          - IF-050
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[MPANCreation]"
          - "[MPStatusChange]"
          - "[GreenDeal]"
      description: Sender Header block
    REP002CommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        reportId:
          type: string
          enum:
          - REP-002
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "005"
          enum:
          - "005"
        eventCode:
          type: string
          enum:
          - "[DUoSLDSOAggData]"
          - "[DUOSSupplierAggData]"
      description: Sender Header block
    REP002ACommonBlock_S0:
      required:
      - eventCode
      - interfaceID
      - schemaVersion
      type: object
      properties:
        reportId:
          type: string
          enum:
          - REP-002A
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "005"
          enum:
          - "005"
        eventCode:
          type: string
          enum:
          - "[DUoSEmbeddedLDSOAggData]"
      description: Sender Header block
    REP003CommonBlock_S0:
      type: object
      properties:
        reportId:
          type: string
          enum:
          - REP-003
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "005"
          enum:
          - "005"
        eventCode:
          type: string
          enum:
          - "[BMUnitAllocatedDemandVolumesToMarketParticipants]"
      description: Sender Header block
    REP004CommonBlock_S0:
      type: object
      properties:
        reportId:
          type: string
          enum:
          - REP-004
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "005"
          enum:
          - "005"
        eventCode:
          type: string
          enum:
          - "[SuplierDemandTakeReport]"
      description: Sender Header block
    REP006CommonBlock_S0:
      type: object
      properties:
        reportId:
          type: string
          enum:
          - REP-006
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "007"
          enum:
          - "007"
        eventCode:
          type: string
          enum:
          - "[UncorrectedConsumptionAndLossesByCCCID]"
      description: Sender Header block
    REP007CommonBlock_S0:
      type: object
      properties:
        reportId:
          type: string
          enum:
          - REP-007
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "005"
          enum:
          - "005"
        eventCode:
          type: string
          enum:
          - "[BMUnitDefaultsToSuppliers]"
      description: Sender Header block
    REP008CommonBlock_S0:
      type: object
      properties:
        reportId:
          type: string
          enum:
          - REP-008
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "005"
          enum:
          - "005"
        eventCode:
          type: string
          enum:
          - "[LDSOLLFDefaultData]"
      description: Sender Header block
    REP009CommonBlock_S0:
      type: object
      properties:
        reportId:
          type: string
          enum:
          - REP-009
        schemaVersion:
          type: string
          description: Version of the message schema used in the exchange
          example: "005"
          enum:
          - "005"
        eventCode:
          type: string
          enum:
          - "[EMRSReportForSuppliers]"
      description: Sender Header block
  parameters:
    MessageChannel:
      name: id
      in: path
      required: true
      style: simple
      explode: false
      schema:
        $ref: '#/components/schemas/DT-000-InterfaceID'
    CommonSignatureHeader:
      name: X-DIP-Signature
      in: header
      required: true
      style: simple
      explode: false
      schema:
        type: string
    CommonSignatureDateHeader:
      name: X-DIP-Signature-Date
      in: header
      required: true
      style: simple
      explode: false
      schema:
        type: string
    CommonSHA256Header:
      name: X-DIP-Content-Hash
      in: header
      required: true
      style: simple
      explode: false
      schema:
        type: string
    CommonSignatureCertifcateHeader:
      name: X-DIP-Signature-Certificate
      in: header
      required: true
      style: simple
      explode: false
      schema:
        type: string
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      name: X-API-Key
      in: header
